3

と に問題が.live()ありconfirmます。クリックごとに確認ダイアログを増やしています。私は知って.die()いますが、それを機能させることができません。

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

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

    });

$("button.del").die("click");上記のコードの直後に試してみましたが、その場合、確認は起動しません。

4

3 に答える 3

1

HTMLも投稿できますか。

これについて推測できる原因の1つは、.delクラスが子クラスに指定されており、イベントが親と子の両方で発生していることです。これは、次の場合に発生します。

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

...

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

もう1つの理由は、誤って2回バインドした場合です。つまり、次の場合に同じ問題が発生します。

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

私たちは本当にあなたのコードをもっと見る必要があります。あなたは理由のために利用しなければなりませんliveclick()単純なバインディングでも同じ結果が得られますか?

于 2010-02-03T09:38:14.597 に答える
1

返信ありがとうございます...それは私のコードのバグでした...申し訳ありません...

私はそれを見ませんでした...確認を伴うコードの部分は、クリックするたびにリロードされました...したがって、乗算...

于 2010-02-15T10:07:39.147 に答える
1

そのコードを単独で実行すると、ダイアログ ボックスが複数回表示されますか?

ダイアログ ボックスが何度も表示される場合、考えられる原因の 1 つは、誤ってこの.live()バインドを複数回実行していることです。その場合、イベントをボタンにバインドするたびに 1 つのダイアログ ボックスが表示されます。

この関数をボタンに一度だけアタッチしていることを確認してください。

このスタンドアロンの例を見ると、コードに問題がないことがわかります。

于 2010-02-03T08:43:33.473 に答える