jquery:使用jquery触发器方法将对象传递给事件处理程序

时间:2011-03-17 05:56:05

标签: jquery

以下代码将对象传递给事件处理程序不起作用:

$('a.another').live('click', function(e, data) {
        alert(data); // **alerts '[{isMachineClick:true}]'**
        alert(data.isMachineClick); // **alerts 'undefined'**
});

$('a.another').trigger('click', "[{isMachineClick:true}]");

请看一下。

PS:链接pass an object through jquery trigger提供的解决方案不起作用,因此发布新帖子。

1 个答案:

答案 0 :(得分:6)

你只传递一个字符串,而且字符串中的JSON更像是一个数组,而不是一个对象。试试这个:

$('a.another').live('click', function(e, data) {
    alert(data[0].isMachineClick);
});

$('a.another').trigger('click', [{isMachineClick:true}]);

UPDATE :没有意识到这是如何工作的:使用数组是正确的,并且每个附加项都成为另一个参数。这是正确的代码:

$('a.another').live('click', function(e, data, data2) {

    alert(data.isMachineClick);

    alert(data2.someOtherThing);
});

$('a.another').trigger('click', [{isMachineClick:true}, {someOtherThing:false}]);