2014-04-09 39 views
0

alrighty我得到了我希望今天對於jquery知識豐富的人來說是一個相當容易的問題。我點擊某個特定元素時會觸發一個切換,在這種情況下,我的標識圖像的ID爲#logobutton。它奇妙地工作,但是這是一個問題,動畫也會激活,只要我點擊頁面上的任何和所有其他鏈接,甚至一些隨機的div盒裝(像我的導航bg)。請注意這個對於這個javaScript爵士樂來說非常新穎,所以我可能會錯過一些你會認爲很明顯的東西。謝謝您的幫助!jquery切換激活多個元素而不是指定的元素

這裏是所有相關代碼的小提琴http://jsfiddle.net/tRf36/1/

的jQuery:

!--jquery script, must be above all jquery elements--> 
<script type="text/javascript" src="jquery-1.11.0.min.js"></script> 
<!--script for bg toggle--> 
<script type="text/javascript"> 

$(document).ready(function() { 
    $("#logobutton").click(function() { 
     $(".galbox").toggleClass("galbox-change"); 
    }); 
}); 


</script> 
<!--bg fade hide on load--> 
<script> 
$(document).ready(function(){ 
    $("#gallerybox").fadeTo(3000, 0.00, function() { 
     $("#gallerybox").fadeTo(1000, 1.00); 
    }); 
}); 
</script> 

希望有人能看到,如果我有一些不正確的目標或任何導致我一般的問題,而不是具體的選擇可點擊區域來激活這個動畫。

+1

,你能否告訴我們有關的標記?你的代碼看起來不錯。小提琴適合我使用FF。 –

+0

你有兩個「準備」處理程序,但這不應該與你遇到的效果有關。順便說一句,這是java_script_爵士樂,而不是Java ...(當然挑剔) – collapsar

+0

哦哇,我的意思是它的醜陋,因爲可以在ff,但其他元素不瞄準它.... ive只在鉻看遠。你是什​​麼意思相關的標記?我發佈了我認爲與我的困境相關的代碼,我是否錯過了一些可以讓這個主題更具信息性的內容? – Eolis

回答

0

我以前的答案是完全脫離基地,對不起。看着你發佈的jsfiddle,似乎你有這樣的標誌按鈕,這樣瀏覽器忽略了/>,只是將所有東西都包裝在一個按鈕中。這意味着圖庫框和導航欄都被激活動畫的按鈕所包圍。更改按鈕是這樣應該修復它:

<button type="button" class="logo" id="logobutton" value=""></button>

+0

mmmmm我試圖快速刪除導航上的HTML鏈接,它仍然動畫時,他們被點擊作爲簡單的列表項目。到目前爲止,我發現除非我包含jquery元素的$(document).ready(),否則他們就不工作。這不是nessisairy?或者說有沒有更好的方式來編寫代碼,以便它只能在onclick而不是頁面加載時運行? – Eolis

+0

我的天啊,謝謝!我一定把我的按鈕類型弄糊塗了,那些不需要關閉div的按鈕類型。 – Eolis

0

接近<button>標籤正確使用</button>

按鈕下的所有元素都被視爲孩子,如果你不正確關閉。

+0

正確!然而有人毆打你。感謝一堆反饋! – Eolis

0

兩個方面合謀造成的影響:

  • 你嵌套了#logobutton按鈕內的導航欄的div。
  • 事件冒泡導致在嵌入式元素上觸發的事件最終到達#logobutton按鈕,由註冊的事件處理程序處理。

一個解決辦法是檢查click事件的觸發因素:

$("#logobutton").click(function (eve) { 
    if ($(eve.target).attr("id") === "logobutton") { 
     $(".galbox").toggleClass("galbox-change"); 
    } 
}); 

您可以測試這個修改with this fiddle

您可以瞭解更多有關事件特別是和事件處理以下鏈接冒泡瀏覽器:

+0

一個輝煌的解決方案,生病時必須記住它,因爲當我需要在這樣的元素內定位一個特定的ID時,但是我真正需要做的就是關閉我的按鈕。非常感謝您的反饋! – Eolis

+0

如果我還有15位代表,我會參加......有一天 – Eolis