Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何删除以前的事件?_Javascript_Jquery - Fatal编程技术网

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()
,而不是执行
$(此)
在每个处理程序中多次:)您的小提琴链接也没有使用答案中的代码,链接错误?;)