Jquery - Multi-Unbind - PullRequest
       3

Jquery - Multi-Unbind

0 голосов
/ 23 июля 2011


Каков наилучший способ отменить все?

Например,
я запускаю функцию someName('mp3Player')

в этой функции много связей

function someName(mode)
{
  if(mode == 'exit')
  {
    $('#player').remove();
    // unbind all 
    // ..........
    return true;
  }  

  if(mode == 'mp3Player')
  {
     $('body').append('<div id="player"> *** add some html code *** </div>');
     $('#test').draggable ....
     $('.myLi').sortable ....
     $('myButton').click ....
     $('.dragable').live( "dragstop", function (event, ui) ....
     return true;
  }

}

Есть хорошие идеи?

Заранее спасибо!
Питер

Ответы [ 2 ]

1 голос
/ 23 июля 2011

Вы можете использовать unbind или die

jquery unbind

jquery die

вв вашем случае вы live преобразуете the event so its better/necessary to use die` как

$('.dragable').die('dragstop');

, чтобы отменить привязку одного события, как упомянуто maxedison, и сделайте

$("element").unbind("eventName");

, чтобы отменить привязку события, прикрепленного к элементуunbind все события, связанные с вызовом элемента unbind без аргументов

$("selector").unbind();
1 голос
/ 23 июля 2011

Самый простой способ сделать это - просто вызвать что-то вроде следующего для каждого элемента:

$('mySelector').unbind('eventName');

Например:

$('.myButton').unbind('click');
...