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/

那么,如果点击#buttondiv,alert 只会发生一次,对吗?

我希望在单击时#clearOneProperty重置一个属性。这是可能的?

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 Documentation *所以你需要再次绑定它*。

现场演示

$("#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 回答