JQuery отвязать, затем связать снова - PullRequest
1 голос
/ 17 декабря 2010

У меня есть функция (мне нужно отменить привязку позже):

$("#closebtn").click(function(){
    $.address.value('/x');
});

Я отменяю это после события:

$("#closebtn").unbind("click");

Теперь я хочу снова связать свою функцию "click" с моим #closebtn, как я могу это сделать? благодарю вас д * +1007 *

Ответы [ 2 ]

5 голосов
/ 17 декабря 2010

Назначьте свою функцию переменной

var closebtn = function() {
    $.address.value('/x');
};

Затем вы можете связать с переменной

$("#closebtn").click(closebtn);
0 голосов
/ 17 декабря 2010

Если это на самом деле кнопка, можете ли вы просто отключить ее, вместо того, чтобы отменять привязку / повторную привязку.Или добавьте оператор if, чтобы функция возвращала false, если вы не хотите, чтобы она «срабатывала» - я думаю, это будет более эффективно, чем bind / un-bind / rebind, что довольно дорого.Может быть, как-то так?

$("#closebtn").click(
    function() {
        if (inEvent) {
            return false
        }
        $.address.value('/x')
    })

$('someOtherElement').click(
    function() {
        inEvent = 1
        // ...
        // do the processing where you don't
        // want the function to fire
        .. ...
        inEvent = 0
    })
...