Javascript 如何删除以前的事件?
告诉我需要更正的内容,重复单击另一个单元格Javascript 如何删除以前的事件?,javascript,jquery,Javascript,Jquery,告诉我需要更正的内容,重复单击另一个单元格TR之前的事件将被删除 我猜您要做的是删除以前的选择 基本上,在本例中,我将从所有同级行中删除visted类: $(this).siblings().removeClass('visited'); 此外,是否有任何理由使用: $(this).closest("tr").toggleClass('visited'); 当您可以只使用: $(this).toggleClass('visited'); // $(this) is a <tr>
TR
之前的事件将被删除
我猜您要做的是删除以前的选择 基本上,在本例中,我将从所有同级行中删除
visted
类:
$(this).siblings().removeClass('visited');
此外,是否有任何理由使用:
$(this).closest("tr").toggleClass('visited');
当您可以只使用:
$(this).toggleClass('visited'); // $(this) is a <tr>
$(this.toggleClass('visted');//$(这)是一个
只需在当前的中添加一点即可。单击()
处理程序,如下所示:
$(this).click(function(){
$(this).closest('tr').toggleClass('visited').siblings().removeClass('visited');
});
$('table tr:even').addClass('even');
$('table tbody').delegate('tr', 'mouseenter', function() {
$(this).addClass("active");
}).delegate('tr', 'mouseleave', function() {
$(this).removeClass("active");
}).delegate('tr', 'click', function(){
$(this).closest('tr').toggleClass('visited').siblings().removeClass('visited');
});
。但是,当您获得更多的元素时,行级处理程序的效率会降低,您应该改为如下所示:
$(this).click(function(){
$(this).closest('tr').toggleClass('visited').siblings().removeClass('visited');
});
$('table tr:even').addClass('even');
$('table tbody').delegate('tr', 'mouseenter', function() {
$(this).addClass("active");
}).delegate('tr', 'mouseleave', function() {
$(this).removeClass("active");
}).delegate('tr', 'click', function(){
$(this).closest('tr').toggleClass('visited').siblings().removeClass('visited');
});
,如果您不走这条路线,至少移动$('table tr:even').addClass('even')代码>在循环之外,它只需要运行一次:)这个怎么样
$('table tr:even').addClass('even');
$('table tr').hover(function() {
$(this).toggleClass("active");
});
这将覆盖均匀高亮显示和悬停。其他建议将对访问效果起作用。您可以大量减少jQuery,并缓存性能
这是支小提琴:
这是jQuery
$rows = $('table tbody tr');
$rows.click(function(){
$(this).addClass('visited');
$(this).siblings().removeClass('visited');
});
$rows.hover(function(){
$(this).toggleClass('active');
});
您需要将它包装在一个$(文档)中。ready()
以及使您的JS更为贴切,我想我已经对您需要做的事情进行了排序
$('table tbody tr').hover(function(){
$(this).toggleClass("active");
}).click(function(){
$(this).addClass( "visited" ).siblings( ).removeClass( "visited" );
}).filter( ":even" ).addClass('even');
所以你有悬停着色,点击访问,取消选择其他,我不知道你是否也要点击取消选择,如果你只是将addClass改回toggleClass。你到底想做什么?我试图点击任何单元格“TR”(添加类),然后我需要删除它(在点击另一个单元格“TR”后)不要忘记接受答案(单击已接受答案上的勾号)。另外,现在你有一个代表>=15,你可以投赞成票。这将使folk在将来更倾向于帮助您。@Algorithm-不要忘记像在其他问题上一样标记已接受的答案。如果您追求性能,这并不比链接更好……更重要的是,最大的性能提升将是使用.delegate()
,而不是执行$(此)
在每个处理程序中多次:)您的小提琴链接也没有使用答案中的代码,链接错误?;)