2012-10-22 27 views

回答

7
$("#mytable").on('hover', 'td', function(){ 
    $(this).find('a.btn').show(); 
    }, function(){ 
    $(this).find('a.btn').hide(); 
}); 

但使用'hover'僞事件作爲替代傳球'mouseenter mouseleave'已棄用,因此您應該直接使用mouseentermouseleave

$("#mytable").on('mouseenter', 'td', function(){ 
    $(this).find('a.btn').show(); 
}) 
.on('mouseleave', 'td', function(){ 
    $(this).find('a.btn').hide(); 
}); 

或者這樣:

或更短這樣的:

$("#mytable").on('mouseenter mouseleave', 'td', function(e){ 
    $(this).find('a.btn').toggle(e.type === 'mouseenter'); 
}); 
+0

'hover'已棄用? – Ian

+0

@ianpgall:根據'.on()'的文檔:*「不贊成使用jQuery 1.8:名稱」hover「用作字符串」mouseenter mouseleave「的簡寫形式。」*然後它會繼續描述傳遞一個單一的事件處理程序,如此真實的形式,如果只是傳遞一個單獨的處理程序'hover''棄用時,文檔似乎不清楚。 –

+0

我是個笨蛋,我正在考慮主要的'.hover'方法,而不是用'.on'。那麼至少知道這很好! – Ian

2

我會做這樣的:

$('td').on({ 
    mouseenter: function() { $(this).find('a.btn').show() } 
    mouseleave: function() { $(this).find('a.btn').hide() } 
}) 

編輯:這不是CLE如果您在這種情況下需要授權,請查看其他答案。