JQuery触发元素本身在绑定中

时间:2013-09-25 12:41:14

标签: javascript jquery triggers bind

有人可以解释一下为什么这个片段无法正常工作吗?

我不能使用window.location,submit(),(而不是trigger())等特定功能,因为此函数绑定到非常不同的元素。

$('a, button').bind('click', function(oEvent, oData) {
    var oButton = $(this);
    var bSkip   = (oData && oData.skip);

    if(true === bSkip) {
        return true;
    } else {
        oEvent.preventDefault();
        //oEvent.stopPropagation();

        if(confirm('This is a confirm box')) {
            $(oButton).trigger('click', { skip: true });
        }
    }
});

提前致谢! ;)

1 个答案:

答案 0 :(得分:1)

在您的情况下,即使点击事件被触发,由于浏览器施加的限制,也可能无法触发链接的默认行为

如果我理解您正在尝试正确执行的操作(如果操作未确认然后取消默认行为),那么您可以通过以下方式实现...无需再次触发事件

$('a, button').bind('click', function (oEvent, oData) {
    if (confirm('This is a confirm box')) {
        return true;
    } else {
        oEvent.preventDefault();
    }
});

演示:Fiddle