2013-01-07 29 views
2

我正在處理交互式元素,要求用戶通過單擊一個段落將段落排序到正確的順序,然後單擊第二個段落以在第二個段落之前或之後插入第一個段落是否他們正在移動一個段落向上或向下列表)使用jQuery不正確懸停insertBefore

http://jsfiddle.net/5ZQkz/2/

我的問題是,當一個段被移動到不同的地方,第二個段落懸停狀態點擊活躍住宿 - 甚至儘管該段沒有被擱置。這發生在鼠標移動之前,此時正確的段落顯示懸停狀態。

E.g點擊第1款,然後在第2款中的段落開關位置,但懸停狀態是在第2款依然活躍,儘管鼠標懸停在第1款注意 - 這個問題不會出現在Firefox瀏覽器。

有什麼建議嗎?

function swapParas(node1, node2) { 
if (node1.index() > node2.index()) node1.insertBefore(node2); 
else node1.insertAfter(node2); 
node1.hide().fadeIn(); 
node1.removeClass('selected'); 
} 

回答

0
.selected:hover { 
    background:green; 
} 

嘗試上面的代碼。

希望這是你想要的。

這裏是一個IE修復。看起來很奇怪,但是這是你能得到的最好:

function swapParas(node1, node2) { 
    if (node1.index() > node2.index()) node1.insertBefore(node2); 
    else node1.insertAfter(node2); 
    node1.removeClass('selected'); 
    node2.after("<div class='para'>" + node2.html() + "</div>"); 
    node2.remove(); 
} 
+0

不,如果你移動的段落後,按住鼠標還在,還有一個不正確的懸停表現。 – richhastings

+0

你能澄清一點你想達到什麼,因爲我沒有明顯地讓你。謝謝。 –

+0

看看jsfiddle。點擊段落1,然後點擊段落2並保持鼠標完全靜止。您會看到鼠標懸停在段落1上方,但段落2顯示懸停狀態。 – richhastings