2014-06-16 82 views
0

我有一個div我做拖動使用下面的代碼:jQuery的hoverclass去除

$("#start").droppable({ 
    hoverClass: 'startHover', 
    drop: handleStartDropEvent, 
    tolerance: "pointer", 
    accept: ".cell", 
    containment: ".cascade", 
}); 

然後某處在我的代碼我使用此代碼動畫此相同的div:

var formHtml = $("#form")[0].outerHTML; 
if ((formHtml.indexOf("row") <= 0)) { 
    alert("Warning: An empty form cannot be submitted"); 
    $("#start").css("background-color", "red"); 
    $("#start").css("color", "white"); 
    $("#start").animate({ 
     backgroundColor: "initial", 
     color: "black" 
    }, 700); 
    return false; 
} 

我已經注意到,在動畫之後,這個div的hoverclass不再起作用了。它仍然是可拖動的,但它不會像動畫之前那樣改變懸停類。

我試着在動畫之後再次設置hoverclass,但沒有奏效。

任何想法?

+1

你怎麼能告訴班級沒有添加?如果它是基於顏色和/或背景顏色的,那麼你已經調用了'css',在這些屬性的情況下它將覆蓋類。 –

+0

你是對的!讓我用正確的解決方案回覆我的帖子 – WtFudgE

回答

0

詹姆斯·蒙塔涅是正確的,解決辦法是在動畫完成後刪除這些屬性,就像這樣:

var formHtml = $("#form")[0].outerHTML; 
if ((formHtml.indexOf("row") <= 0)) { 
    alert("Warning: An empty form cannot be submitted"); 
    $("#start").css("background-color", "red"); 
    $("#start").css("color", "white"); 
    $("#start").animate({ 
     backgroundColor: "initial", 
     color: "black" 
    }, 700, function() { $("#start").attr('style', ''); }); 
    return false; 
} 

乾杯詹姆斯!

0

對於略顯不足嚴厲的方式(不是刪除整個樣式屬性爲您的解決方案),你也可以只清除相關的CSS屬性,像這樣:

$("#start").css("background-color", "red"); 
$("#start").css("color", "white"); 
$("#start").animate({ 
    backgroundColor: "initial", 
    color: "black" 
}, 700, function() { 
    $("#start").css('color', '') 
       .css('background-color', ''); 
}); 

這將清除colorbackground-color css屬性,以便爲我們的懸停類定義的CSS可以生效。