2011-06-13 54 views
0

这里是我的HTML:如何在TR中解除绑定jQuery中的TD的鼠标悬停?

<table id="myTable"> 
    <tr class="myTr"> 
     <td> 
      CELL 1 
     </td> 
     <td> 
      Cell 2 
     </td> 
     <td class="notThis"> 
      Cell 3 
     </td> 
    </tr> 
    <tr class="myTr"> 
     <td> 
      2- CELL 1 
     </td> 
     <td> 
      2- Cell 2 
     </td> 
     <td> 
      2- Cell 3 
     </td> 
    </tr> 
</table> 

<div id="myDiv">CONSOLE</div> 

而且我的javascript:

$(document).ready(function() { 
    $(".myTr").mouseover(function() { 
     $("#myDiv").html("OVER"); 
    }); 
}); 

我希望它这样,当你将鼠标放置在 “notThis” 电池,鼠标悬停不会触发。我有一个小提琴设置来进行测试:http://jsfiddle.net/S7bfH/3/

感谢

+0

如果绑定到td元素的处理程序与event.stopPropagation()做到这一点你正在改变mouseover事件的CSS,调整t可能会更容易他CSS的td.notThis显示不变。 – 2011-06-13 16:00:53

回答

3

这里:

WORKING DEMO

$(".myTr td:not('.notThis')").hover(function() { 
     $("#myDiv").html("ACTIVE"); 
    }, function() { 
     $("#myDiv").html("INACTIVE");   
    }); 
2

你需要停止事件传播;这可以防止事件冒泡到其他处理程序绑定的祖先元素。

$('.notThis').mouseover(function(event) { 
    event.stopPropagation(); 
}); 
-2

使用。不能()方法,例如

$(".myTr").not(".notThis").mouseover(function() { 
+1

这没有什么帮助,因为事件从来没有被绑定到'.notThis'上。这只是将处理程序绑定到不是'.notThis'的所有'.myTr'元素 - 这都是它们!问题在于事件冒泡,在这里。 – lonesomeday 2011-06-13 16:04:27