jQuery .bind () не работает должным образом - PullRequest
0 голосов
/ 30 мая 2011

Я пытаюсь привязать функции к этим событиям, используя jQuery:

$("#cmplist tr").bind('onmouseover', function(){
    console.log('1');
});

$("#cmplist tr").bind('onmouseout', function(){
    console.log('2');
});

$("#cmplist tr").bind('click', function(){
    console.log('3');
});

Однако ни один из них, похоже, не работает. Я вполне уверен, что мои селекторы верны, потому что когда я вхожу в консоль $("#cmplist tr"), она возвращает:

[tr, tr#survey3, tr#survey20, tr#survey22, tr#survey26, tr#survey28, tr#survey29, tr#survey30, tr#survey33, tr#survey34, tr#survey6, tr#survey19, tr#survey14, tr#survey32, tr#sweepstakes5, tr#sweepstakes9, tr#coupons5, tr#freesample4, tr#freesample5, tr#freesample6, tr#freesample7, tr#gifts3, tr#gifts4, tr#polls2, tr#polls5, tr#polls6, tr#quiz8, tr#trivia4, tr#photo6, tr#photo10, tr#photo11, tr#photo12, tr#photo13, tr#photo15, tr#photo16, tr#photo17, tr#video4, tr#iframe2, tr#iframe4]

Я что-то упускаю из-за того, как работают события jQuery?

Ответы [ 2 ]

8 голосов
/ 30 мая 2011

Удалите «вкл» из ваших названий событий.Также я думаю, что в настоящее время хип-хопом является использование mouseenter и mouseleave с обработчиками событий jQuery.Эти события «нормализуются» библиотекой, чтобы сделать все более надежным перед лицом странного поведения браузера.

Кроме того, убедитесь, что вы выполняете привязку в «готовом» обработчике, если вы не увереныу вас есть альтернативное, не менее эффективное решение:

$(function() {

  // your event binding stuff here

});
2 голосов
/ 30 мая 2011

попробуйте это:

$(function(){

    $("#cmplist tr").bind('mouseover', function(){
        console.log('1');
    });

    $("#cmplist tr").bind('mouseout', function(){
        console.log('2');
    });

    $("#cmplist tr").bind('click', function(){
        console.log('3');
    });

});
...