所以我有這樣的懸停代碼:調用的.css()函數禁用懸停
function shortHover(elem){
$('body').delegate(elem, 'hover',
function() {
$(this).css("background-color", "#f0c723;")
},
function(){
$(this).css("background-color", "#00ed00;")
}
)
}
shortHover("#for_width_my_added");
shortHover("#for_width_my_published");
shortHover("#for_width_my_unpublished");
而且比,在點擊這些元素之一:
$("#for_width_my_added").css("background-color", "#00ed00");
$("#for_width_my_published").css("background-color", "#00ed00");
$("#for_width_my_unpublished").css("background-color", "#00ed00");
$("#for_width_<%= @output[0] %>").css("background-color", "#f0c723");
於是就點擊了分配給元素綠色,當前點擊 - 懸停顏色,所以一個元素可以永久具有這些顏色。
問題是點擊元素後停止對懸停進行反應。儘管我使用了委託。 爲什麼?
你不能在'hover'中使用'delegate',這不是一個真實的事件。 'delegate'只允許爲單個事件提供一個處理函數。 '.hover()'是綁定'mouseIn'和'mouseOut'處理程序的jQuery速記。 – Barmar 2013-05-07 00:23:08