jQuery事件之传递参数
一、jQuery绑定事件的三种方法
我们这里首先复习一下jQuery绑定事件的三种方法:
target.click(function(){}); target.on("click",function(){}); target.bind("click",function(){}); target.live("click",function(){});
live方法其实是bind方法的变种,其基本功能就同bind方法的功能是一样的,都是为一个元素绑定某个事件,但是bind方法只能给当前存在的元素绑定事件,对于事后采用JS等方式新生成的元素无效,而live方法则正好弥补了bind方法的这个缺陷,它可以对后生成的元素也可以绑定相应的事件。
二、传递参数
1.使用trigger触发事件来进行参数传递
$('p:first').bind('myclick',function(event,arg1,arg2){ $(arg1).appendTo('body'); console.log(arg2); }); $('input').click(function(){ $('p:first').trigger('myclick',//这里触发了myclick事件 ['<div><a href="http://www.google.com.hk">google</a></div>' ,'this is to console.log']); //第二个参数 string });
2.使用bind传递参数
var name_value='stonecold'; $('p').bind('click',{name:name_vlaue},function(event){ console.log(event.data.name);//结果在控制台上显示为stonecold });
3.在简单的事件中传递参数
A:首先定义一个函数,在点击的时候触发:
function fn_name(arg1){ $(arg1).appendTo('body'); }
B:定义一个变量作为参数传递
var arg='<a href="http://www.google.com.hk">google<a>'; $('img:first').click(function(){ fn_name(arg); });