1. 程式人生 > >jquery中hover和blur使用delegate失效的解決辦法

jquery中hover和blur使用delegate失效的解決辦法

我想要實現,動態生成的span,再繫結hover事件,使得懸浮到span上時出現放大鏡圖片

結果遇到了

$("#jnBrandList").delegate(".imageMask", "hover", function(){
        $(this).toggleClass("imageOver");
    });

就是不執行的情況。

一開始以為是我使用的jquery不支援delegate動態繫結事件,但是jquery1.8以後是支援的,所以排除。

後來看到了這篇部落格http://www.thinksaas.cn/topics/0/455/455142.html    說delegate失效的原因是要繫結的事件不支援事件冒泡,而因為delegate原理是依靠事件冒泡處理的所以delegate會失效。於是,想到可能的事件的原因,後來查到原因。是jquery1.9之後,因為hover、blur不是標準的事件,因此無法直接使用live和delegate進行處理。可以用mouseenter和mouseleave代替。

果然問題解決了。

$("#jnBrandList").delegate(".imageMask", "mouseenter mouseleave", function(){
        $(this).toggleClass("imageOver");
    });