2012-05-07 61 views

回答

5

使用jQuery Event API而不是現在使用的內聯事件觸發器。如果你使用jQuery API,它可以正常工作。由於您使用jQuery1.7.1:

jQuery(function($) { 
    $("#t").on('mouseleave', function() { 
     $(this).effect("pulsate", { times:1}, 200); 
    }); 
}​);​ 

例子:http://jsfiddle.net/2ZRBx/6/

+0

這裏的關鍵不是將處理程序從內聯JavaScript移到jQuery事件,而是使用mouseleave事件而不是mouseout。我在上面的代碼中使用了鼠標,問題仍然存在。 – Mik

2

將表格封裝在div中,然後將該mouseout事件放在該div上。

5

由於您使用jQuery的,我會刪除內聯JavaScript和做到這一點:

function go2() { 
    $("#t").effect("pulsate", { 
     times: 1 
    }, 200); 
} 
$('#t').mouseleave(function() { 
    go2(); 
});​ 

jsFiddle example

+0

哇,這是真棒!我想知道jQuery如何做到這一點。 –

+1

爲什麼不使用JavaScript回調(正如我在我的回答中所建議的)?從DOM中獲取#t元素的2倍是非常昂貴的時間。最好在'go2'函數中使用'$(this)'或者在變量中保存'$('#t')'並使用它 –

+1

您可以檢查mouseleave上的文檔以及jQuery的mouseout和mouseleave http://api.jquery.com/mouseleave/ – j08691

相關問題