2013-04-23 2 views
0

Я работаю со столом и прядильщиком, когда строка таблицы была нажата на doucle, я хочу добавить ее к значению счетчика и выполнить функцию x, с другой стороны, счетчик имеет изменение события, когда он изменяется, я хочу выполнить функцию y. У меня есть это:Отключить событие при щелчке строки таблицы, не работающей JQuery

$(spinner).spinner({ 
     change: function(event, ui) { 
      alert("y"); 
     } 
}).val(0); 

$('td#row').dblclick(function(event){ 
     $(spinner).spinner("value"); 
     $(spinner).spinner("value", value + 1); 
     alert("x"); 
    } 

Проблема заключается в том, когда я дважды щелкните таблицу, обе функции называются (функция х и у), как я могу отменить событие изменения счетчика? я попытался это:

$(spinner).spinner("value", value + 1).unbind("change"); 

Кроме того, я попытался undelegate() event.stopPropagation() event.stopImmediatePropagation() метод, но ничего не работает, какие-либо идеи?

+0

Скручитель не имеет события «change». Это просто специальный метод, который вызывается, когда вы меняете его значение. Так что нет способа «развязать» его – Ian

+0

Да, он имеет один: http://api.jqueryui.com/spinner/#event-change –

+0

Простите, это событие пользовательского интерфейса jQuery, а не реальное событие. Как я уже сказал, вы не можете привязываться к нему или отвязывать его ... вы просто указываете, что произойдет, когда вызывается внутреннее событие «изменения». – Ian

ответ

1

event имя «spinchange», поэтому вы можете привязать или развязать это событие, вместо указания опции change. Попробуйте это:

function spinChange(event, ui) { 
    console.log("AFAF"); 
} 

$("#spinner").spinner().on("spinchange", spinChange); 

$("#btn1").on("click", function() { 
    var $spinner = $("#spinner"), 
     prevValue = $spinner.spinner("value"); 

    $spinner.off("spinchange", spinChange); 
    $spinner.spinner("value", prevValue+1); 
    $spinner.on("spinchange", spinChange); 
}); 

DEMO:http://jsfiddle.net/5cL8G/2/

Обратите внимание, как нажав на кнопку ничего не войти в консоль, но вручную изменив значение (и unfocusing) делает.

Смежные вопросы