带有选项的jQuery中的触发器

Trigger in jQuery with options?

本文关键字:触发器 jQuery 选项      更新时间:2023-09-26

例如:

$('#field').click(function(){
   alert('One');
   alert('Two');
})

我想使用触发器:

$('#field').trigger('click');

可以为此添加功能吗?

如果我使用触发器,我只想执行警报('One')

也许是…

$('#field').click(function(){
   alert('One');
   if(this != trigger){
      alert('Two');
   }
})

.trigger实际上可以向事件发送参数(它需要是一个数组)。

$('#field').trigger('click', [true]);

然后这样修改事件:

$('#field').click(function(e, trigger){
   alert('One');
   if(!trigger){
      alert('Two');
   }
})

演示:http://jsfiddle.net/NTICompass/Rkr9S/

不确定我是否正确理解您,但您可以使用第二个参数将变量传递给触发器:

$('#field').click(function(e, obj) {
    alert('One');
    if ( obj.two ) {
        alert('Two');
    }
});    
$('#field').trigger('click', {
   two: false
});

http://jsfiddle.net/t5nZz/

在触发事件的情况下,相应的事件对象将具有属性isTrigger: true。所以你可以这样做:

$('#field').click(function(e) {
   alert('One');
   if (!e.isTrigger) {
      alert('Two');
   }
});

如果我没看错你的问题,你希望在手动触发时做一些不同的事情。

第1节

someGlobalVariable = true;
$('#field').trigger('click');

第2节

$('#field').click(function(){
   alert('One');
   if(!someGlobalVariable){
      alert('Two');
   }
   someGlobalVariable = false;
})