2013-03-24 58 views
1

我有這個腳本來設置box-shadow元素是否被徘徊。還應該同時刪除父(S)風格:如何設置這個元素的樣式

var on = { 
    boxShadow : "inset 0px 0px 0px 1px #f80" 
    }; 

    var out = { 
    boxShadow : "inset 0px 0px 0px 0px #f80" 
    }; 

$('body *').hover(function(e) { 
    $(this).css(out); 
    $(this).css(on); 
    e.stopPropagation(); 
}, function() { 
    $(this).parent().css(out); 
    $(this).css(out); 
}); 

如果你看看下面這個例子JsFiddle你會看到,如果你懸停跨度其父(P)也將獲得樣式。我能做些什麼來設計只有被徘徊的元素,而不是它的孩子或父母?我必須使用each()嗎?

+0

IM在一些更大的工作中,我需要身體* – Youss 2013-03-24 11:46:40

+0

可能[懸停用Jquery懸停事件指示選擇]的副本(http://stackoverflow.com/questions/15418904/hover-indicate-selection-with-jquery-hover-event)。您接受解決問題的答案不正確嗎? – JJJ 2013-03-24 11:53:29

+0

@Juhana它當然有效,但當我刪除事件'addClass/removeClass'並用'.css'替換它們時,整個事情都不起作用。所以我想知道這是爲什麼,因此我的問題 – Youss 2013-03-24 11:58:37

回答

0

得到它的工作感謝上帝:

JsFiddle

var on = { boxShadow : "inset 0px 0px 0px 1px #f80" }; 

    var out = { boxShadow : "inset 0px 0px 0px 0px #f80" }; 

$('body *').hover(function(e) { 
    $(this).parents().css(out); 
    $(this).css(on); 
    e.stopPropagation(); 
}, function() { 
    $(this).parent().css(out); 
    $(this).css(out); 
    $(this).parent().css(on); 
}); 

你看@adeneo是沒有問題的:)

+1

您正在做的是將觸發懸停的元素的所有父母的'CSS'更改爲'out',並將觸發懸停的元素的'CSS'更改爲'on'。也沒有理由擁有'e.stopPropagation()'。如果您將此代碼放在完整的網站上,網站中的每個元素都將受到影響。 – noahnu 2013-04-14 18:38:10

相關問題