Javascript jQuery事件不';当html被注入时无法工作

Javascript jQuery事件不';当html被注入时无法工作,javascript,jquery,Javascript,Jquery,我有这样的想法: function SetTableBehavior() { $(".displayData tr").hover(function(e) { $(this).children().addClass('displayDataMouseOver'); }, function () { $(this).children().removeClass('displayDataMouseOver'); }); $(".disp

我有这样的想法:

function SetTableBehavior() {
    $(".displayData tr").hover(function(e) {
        $(this).children().addClass('displayDataMouseOver');
    }, function () {
        $(this).children().removeClass('displayDataMouseOver');
    });
    $(".displayData tr td").click(function(e) {
        var rowsSel = $(".displayData .displayDataRowSelected");
        for (var i = 0; i < rowsSel.length; i++) {
            var rowSel = rowsSel[i];
            $(rowSel).children().removeClass("displayDataRowSelected");
        }
        $(this).parent().addClass('displayDataRowSelected');
        var p = $(this).parent();
        p.children().addClass('displayDataRowSelected');
    });
}
function SetTableBehavior() {
    $(".displayData tr").live('mouseenter', function (e) {
        $(this).children().addClass('displayDataMouseOver');
    }).live('mouseleave', function(e) {
        $(this).children().removeClass('displayDataMouseOver');
    });
    $(".displayData tr td").live('click',function(e) {
        var rowsSel = $(".displayData .displayDataRowSelected");
        for (var i = 0; i < rowsSel.length; i++) {
            var rowSel = rowsSel[i];
            $(rowSel).children().removeClass("displayDataRowSelected");
        }
        $(this).parent().addClass('displayDataRowSelected');
        var p = $(this).parent();
        p.children().addClass('displayDataRowSelected');
    });
}
单击事件可以工作,但是

$(".displayData tr").live('hover',function(e) {
不起作用

悬停工作的解决方案是什么。 谢谢

它似乎是这样工作的:

function SetTableBehavior() {
    $(".displayData tr").hover(function(e) {
        $(this).children().addClass('displayDataMouseOver');
    }, function () {
        $(this).children().removeClass('displayDataMouseOver');
    });
    $(".displayData tr td").click(function(e) {
        var rowsSel = $(".displayData .displayDataRowSelected");
        for (var i = 0; i < rowsSel.length; i++) {
            var rowSel = rowsSel[i];
            $(rowSel).children().removeClass("displayDataRowSelected");
        }
        $(this).parent().addClass('displayDataRowSelected');
        var p = $(this).parent();
        p.children().addClass('displayDataRowSelected');
    });
}
function SetTableBehavior() {
    $(".displayData tr").live('mouseenter', function (e) {
        $(this).children().addClass('displayDataMouseOver');
    }).live('mouseleave', function(e) {
        $(this).children().removeClass('displayDataMouseOver');
    });
    $(".displayData tr td").live('click',function(e) {
        var rowsSel = $(".displayData .displayDataRowSelected");
        for (var i = 0; i < rowsSel.length; i++) {
            var rowSel = rowsSel[i];
            $(rowSel).children().removeClass("displayDataRowSelected");
        }
        $(this).parent().addClass('displayDataRowSelected');
        var p = $(this).parent();
        p.children().addClass('displayDataRowSelected');
    });
}
函数SetTableBehavior(){
$(“.displayData tr”).live('mouseenter',函数(e){
$(this.children().addClass('displayDataMouseOver');
}).live('mouseleave',函数(e){
$(this.children().removeClass('displayDataMouseOver');
});
$(“.displayData tr td”).live('click',函数(e){
var rowsSel=$(“.displayData.displayDataRowSelected”);
对于(变量i=0;i
从这里开始:

没有名为“悬停”的事件,因此不能将其用于live或bind。这只是jQuery为我们实现的一条“捷径”。

hover(a,b)
mouseenter(a)。mouseleave(b)
(它们本身就是
bind('mouseenter',a)。bind('mouseleave',b)
)的快捷方式,请尝试:


有关更多信息,请参阅和文档。

您不能将鼠标悬停与
live一起使用。您必须将其拆分为两个独立的事件侦听器:一个用于,另一个用于

此外,在您的情况下,您不需要
live
。使用
委托
,这对性能更有利:

$(".displayData").delegate('tr', 'mouseeneter',function(e) {
    $(this).children().addClass('displayDataMouseOver');
})
.delegate('tr', 'mouseleave',function(e) {
    $(this).children().removeClass('displayDataMouseOver');
});

hover()
实现
mouseenter
mouseleave
事件,而不是
mouseover
mouseout
我说的是这样还是那样?这只是我链接到的jQuery文档的一个复制粘贴。问题是如何使hover对注入的HTML元素起作用。。。用
mouseover
mouseout
调用替换
hover
,并不是替换。
$(".displayData").delegate('tr', 'mouseeneter',function(e) {
    $(this).children().addClass('displayDataMouseOver');
})
.delegate('tr', 'mouseleave',function(e) {
    $(this).children().removeClass('displayDataMouseOver');
});