unbind не работает - PullRequest
       18

unbind не работает

0 голосов
/ 30 апреля 2011

Есть идеи, что я делаю не так?

Я пытаюсь заставить "hover" не применяться к text3.

$(document).ready(function() {

runIt();

});

function runIt(){
$('#myText').hover(function(){
        $(this).clearQueue().html('Start Again');

})
.click(function(){
    runIt();
})
.html('text 1')
.fadeIn(1000)
.delay(1000)
.fadeOut(1000,function(){
    $(this).html('text 2');
})
.fadeIn(1000)
.delay(1000)
.fadeOut(1000,function(){
    $(this).html('text 3').unbind('hover');
})
.fadeIn(1000);

};

1 Ответ

1 голос
/ 30 апреля 2011

.hover() на самом деле является ярлыком, поэтому для отмены привязки вам нужно отменить привязку обработчиков событий, которые он создал, вам нужно указать этих события mouseenter и mouseleave, например:

$(this).html('text 3').unbind('mouseenter mouseleave');

В качестве подсказки, .ready()принимает функцию, поэтому вместо этого:

$(document).ready(function() {
  runIt();
});

Вы можете просто сделать:

$(document).ready(runIt);

Или формат ярлыка, передавая обработчик непосредственно в конструктор jQuery :

$(runIt);

Все вышеперечисленное будет иметь такой же эффект здесь.

...