3

我遇到了.live()和的问题confirm。每次点击都会增加确认对话框。我知道,.die()但我无法让它工作。

$("button.del").live("click", function(){

        if(!confirm("Are you sure?")) {
            //close
        }

    });

我在上面的代码之后就试过$("button.del").die("click");了,在这种情况下,confim 甚至都不会触发。

4

3 回答 3

1

如果您只是单独运行该代码,该对话框是否会出现多次?

如果对话框多次出现,一个可能的解释是您不小心多次运行此.live()绑定。如果发生这种情况,每次将事件绑定到按钮时,您都会看到一个对话框。

确保您只将此功能附加到按钮一次。

如果你看一下这个独立的例子,你会发现你的代码很好。

于 2010-02-03T08:43:33.473 回答
1

您也可以发布HTML。

我可以推测的一个原因是 .del 类被指定到某个子类中,并且事件在父子类中触发。这将发生在以下情况:

<div class="testclass">
    test
    <div class="testclass">
        test2
    </div>
</div>

...

$(".testclass").click(function() { alert("test"); });

另一个原因是如果你不小心绑定了两次,即以下会导致同样的问题

$(".testclass").click(function() { alert("test"); });
$(".testclass").click(function() { alert("test"); });

我们真的需要看到更多你的代码。你必须使用live是有原因的。click()使用简单的绑定可以获得相同的结果吗?

于 2010-02-03T09:38:14.597 回答
1

谢谢大家的回复......原来这是我的代码中的一个错误......对不起......

我没有看到它...带有确认的代码部分在每次单击时都会重新加载...因此乘以...

于 2010-02-15T10:07:39.147 回答