在失败时捕获和触发相同的事件

时间:2014-06-17 07:30:01

标签: javascript jquery functional-programming

我想抓住一个事件并有条件地触发它。

$('#next, #prev, .qpn').click( function(event){
    if (status[0]){
      submit_quiz($(currQ), 0);  
    }  
    else{
      setTimeout(function(){$( "body" ).trigger( event );}, 5000);
    }
});

我已触发,但未触发。我是否需要指定实际调用事件的元素,如下所示:

$('#next').trigger("click")

如何获取最初调用事件的元素(在我的情况下为$('#next')$('#prev')$('.qpn'))?

1 个答案:

答案 0 :(得分:1)

你可以得到这样的元素:

$('#next, #prev, .qpn').click( function(event){
    var that=$(this);
    ...

然后按这样触发:

that.trigger('click');

所以你的代码应该是这样的:

$('#next, #prev, .qpn').click( function(event){
    var that=$(this);
    if (status[0]){
      submit_quiz($(currQ), 0);  
    }  
    else{
      setTimeout(function(){that.trigger( 'click' );}, 5000);
    }
});