5

jqueryoneプロパティをクリアすることは可能ですか? たとえば、与えられたhtml

    <div id="button">button</div>

    <div id="clearOneProperty">clear one property</div>

とjs

$("#button").one("click", function () {
    alert("blah");
});

$("#clearOneProperty").on("click", function () {
    // clear "one" property, that is after this event,  I want "#button"  to work again
});

デモhttp://jsfiddle.net/RzzCu/2/

では、div をクリックする#buttonと、アラートは 1 回しか発生しませんよね?

そして、クリックすると#clearOneProperty、1つのプロパティがリセットされます。それが可能だ?

PS私は他の方法でこれを行う方法を尋ねていません.私は正確に興味があります:「可能な明確なjqueryoneメソッド?」ありがとう。

4

5 に答える 5

7

これを試して:

function bindButton() {
    $("#button").unbind('click').one("click", function() {
        alert("blah");
    });
}

bindButton();

$("#clearOneProperty").on("click", function() {
    bindButton();
});

更新されたフィドル

于 2012-11-30T10:02:34.380 に答える
3

「このメソッドの最初の形式は .bind(), ,except that the handler is unbound after its first invocation" jQueryドキュメントと同じです*したがって、再度バインドする必要があります*.

ライブデモ

$("#button").one("click", onefunction);

function onefunction() {
    alert("blah");
}
$("#clearOneProperty").one("click", function() {       
    $("#button").one("click", onefunction);
});​
于 2012-11-30T10:07:44.013 に答える
1

関数内で再バインドするだけです。

$("#button").one("click", function () {
    alert("blah");
});

$("#clearOneProperty").one("click", function () {
    $('#button').one("click", function () {
    alert("blah");
});
});

ここにフィドル

于 2012-11-30T10:02:55.520 に答える
0

unbind()メソッドを使用する

$("#button").unbind();
于 2012-11-30T10:02:21.317 に答える
0

試す

$('#button').unbind('click');
于 2012-11-30T10:05:31.307 に答える