javascript - 失败时捕获并触发同一事件

标签 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')) ?

最佳答案

你可以这样获取元素:

$('#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);
    }
});

关于javascript - 失败时捕获并触发同一事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24258080/

相关文章:

javascript - 设置附加到文本区域的字符串的顺序

javascript - Google 图表分数数字

javascript - 为什么jQuery延迟不会导致闪烁 Action

javascript - 动画 div-height 取决于滚动,没有延迟

java - 如何根据行表(数据库)检查复选框?

javascript - `Either` 类型可以转换为 `Task` 类型吗?

javascript - jQuery FormData 和文件

javascript - 如何在 Node.js 上使用 co 模块捕获异常?

c++ - C++(0x) 中是否存在无操作 "do nothing"函数对象?

recursion - 为什么 lua 不允许本地 lambda 函数递归调用自己?