0

私はjQueryを使用しています:

$(".myClass").one("click", function(){
    $(this).addClass("selected");
    $("#noneselected").hide();
    alert("hidden");
});

この HTML では:

<p class="myClass">Click</p>
<p class="myClass">Click</p>
<p class="myClass">Click</p>


問題:

この関数はonclick、 ごとに 1 回起動しています.myClass.oneそれらのいずれかを最初にクリックしたときに、それらすべてに対して1回だけ起動したい。すでに別の機能を持っているため、単に.onandを使用することはできません。これどうやってするの?.off.on("click"

4

3 に答える 3

1

隠し変数を保存して、関数が起動したかどうかを確認するのはどうですか?

var handler = (function() {
    var fired = false;

    return function(){
        if (fired) return; // don't run the handler if fired is true

        fired = true;
        $(this).addClass("selected");
        $("#noneselected").hide();
        alert("hidden");
    }
}());
于 2013-07-04T11:05:26.557 に答える