0

有人能解释一下为什么这个片段不能工作吗?

我不能使用诸如 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 });
        }
    }
});

提前致谢 !;)

4

1 回答 1

1

在您的情况下,即使单击事件被触发,由于浏览器施加的约束,链接的默认行为也可能不会被触发

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

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

演示:小提琴

于 2013-09-25T12:56:08.707 回答