2012-07-02 160 views
5

我想弄清楚,我可以如何设置自定义事件的参数。 如何在订阅事件时设置参数,然后在触发事件时添加一些附加数据。jQuery的自定义事件数据(订阅和触发器)

我有一个简单的JS测试,但在“处理”的e参数我只看到订阅的数据。

function handle(e) { 
    //e.data has only "b" 
    alert(e.data); 
} 

function myObj() { 
    this.raise = function() { 
      //Trigger 
     $(this).trigger("custom", { a: "a" }); 
    } 
} 

var inst = new myObj(); 
//Subscribe 
$(inst).bind("custom", { b: "b" }, handle); 
inst.raise(); 

谢谢。

+0

只是一个提示。这里提醒会给你''[object Object]和[object Object]'''。使用'''console.log(e.data,'also',triggerParam)'''会显示浏览器控制台中的实际对象; – PHearst

回答

5

提供给.trigger()的参数作为事件处理函数的第二个参数传递。

function handle(e, triggerParam) { 
    //e.data has only "b" 
    alert(e.data + ' also ' + triggerParam); 
} 
+0

啊谢谢:)我错过了jQuery教程...再次感谢:) –

相关问题