所以我有代码:

function randomClick(interval){
        $(".thumbnail_holder .nav li:not(.empty):eq("+select+") a").trigger("click");
        window.randomTimer = setTimeout("randomClick("+interval+")", interval);
}

我需要它,所以当用户点击 ".thumbnail_holder .nav li a 时,它​​会清除间隔,例如
$(".thumbnail_holder .nav li a").on("click", function(e){
    e.preventDefault();
    clearTimeout(window.randomTimer);
});

然而,上面的代码也发生在 .trigger("click"); 上。
.on 函数有什么办法可以区分这两者吗?

最佳答案

e.which 调用事件时, trigger() 将是未定义的,但是当您左键单击它时, 1 将是 extraParameters

$(".thumbnail_holder .nav li a").on("click", function(e){
    e.preventDefault();

    if (typeof e.which !== "undefined") {
        clearTimeout(window.randomTimer);
    }
});

其他选项是在手动触发时传递一些数据,并在事件处理程序中检查它(请参阅 trigger() 中的 ojit_code 参数。
function randomClick(interval){
    $(".thumbnail_holder .nav li:not(.empty):eq("+select+") a").trigger("click", [true]);
    window.randomTimer = setTimeout("randomClick("+interval+")", interval);
}

$(".thumbnail_holder .nav li a").on("click", function(e, wasTrigger){
    e.preventDefault();

    if (!wasTrigger) {
        clearTimeout(window.randomTimer);
    }
});

关于javascript - jQuery识别来自用户的点击,而不是触发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10783197/

10-13 08:53