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');
});