jquery下为Event handler传递动态参数的代码
作者:
在jquery cook book里看到一篇给event handler传递动态参数的文章 感觉挺实用的 跟大家分享下
实例代码
<body>
<div id="demo"></div>
<button id="btn" >trigger it</button>
<script type="text/javascript">
(function($) {
//demo1
$("#demo").bind("demo-trigger", function(e, args) {
var info = [];
//对应的我们从args参数中获取数据
for(var prop in args) {
info.push(prop + ":" + args[prop]);
}
this.innerHTML = info.join(';');
});
$('#btn').click(function() {
// 我们把数据作为一个参数和我们关心的事件名一起传入trigger方法
$('#demo').trigger('demo-trigger', {
name:'Andrew',
age: '23',
job: 'FrontEnd Dev'
});
});
/**demo2
$("#demo").bind("demo-trigger", function(e) {
var info = [];
//我们通过传入的e.extra来获取我们传入的数据
for(var prop in e.extra) {
info.push(prop + ":" + e.extra[prop]);
}
//展现出来
this.innerHTML = info.join(';');
});
$('#btn').click(function() {
//这个用法很有意思 我们new一个jQuery Event对象 参数为我们关心的事件名
var event = new jQuery.Event("demo-trigger");
//给这个event附加一个属性 包含我们的数据
event.extra = {
name:'Andrew',
age :'23',
job :'FrontEnd Dev'
};
//最后把event传入trigger方法 ...看上面的$('#demo').....
$('#demo').trigger(event);
});**/
})(jQuery);
</script>
</body>
复制代码 代码如下:
<body>
<div id="demo"></div>
<button id="btn" >trigger it</button>
<script type="text/javascript">
(function($) {
//demo1
$("#demo").bind("demo-trigger", function(e, args) {
var info = [];
//对应的我们从args参数中获取数据
for(var prop in args) {
info.push(prop + ":" + args[prop]);
}
this.innerHTML = info.join(';');
});
$('#btn').click(function() {
// 我们把数据作为一个参数和我们关心的事件名一起传入trigger方法
$('#demo').trigger('demo-trigger', {
name:'Andrew',
age: '23',
job: 'FrontEnd Dev'
});
});
/**demo2
$("#demo").bind("demo-trigger", function(e) {
var info = [];
//我们通过传入的e.extra来获取我们传入的数据
for(var prop in e.extra) {
info.push(prop + ":" + e.extra[prop]);
}
//展现出来
this.innerHTML = info.join(';');
});
$('#btn').click(function() {
//这个用法很有意思 我们new一个jQuery Event对象 参数为我们关心的事件名
var event = new jQuery.Event("demo-trigger");
//给这个event附加一个属性 包含我们的数据
event.extra = {
name:'Andrew',
age :'23',
job :'FrontEnd Dev'
};
//最后把event传入trigger方法 ...看上面的$('#demo').....
$('#demo').trigger(event);
});**/
})(jQuery);
</script>
</body>