2012-04-20 22 views
1

所以我有一些圖像完全位於設置爲隱藏的頁面上,當你點擊合適的鏈接觸發顯示它們的事件時,顯示繼承。jquery,當一個哈希值在url中時激活一個腳本

現在,這裏是我的問題來了。說我分配一個圖像的ID爲「示例」 - 有什麼辦法,當有人用哈希標籤#example進入網站或點擊與哈希標籤的鏈接#example在url中,該事件會觸發一個具有相同ID的圖像?我真的難倒就這一個

使用什麼我一直是這樣的:

$("#activate1").click(function() { 
$("#flyer1").css("display", "inherit"); 

});

哪些工作正常,但現在我必須每週添加傳單,這意味着我需要改變,除非我想爲每個獨特的案例編寫上述代碼。但最重要的是,我現在還必須通過鏈接將它們發送給用戶,這樣腳本現在必須在點擊鏈接時觸發 - 我認爲解決此問題的最佳方法可能是實施散列標記觸發器

+0

你可以張貼一些代碼? – elclanrs 2012-04-20 03:17:38

+0

當然可以!我剛纔添加了它,並解釋了更多 - 並不意味着如此模糊 – 2012-04-20 03:27:45

+0

歡迎來到SO布列塔尼! – 2012-04-20 03:44:06

回答

2

要激活的是在他們的哈希標籤不編碼任何特定名稱的頁面中的所有鏈接,您可以此操作:

$('a[href*="#"]').on('click', function(e) { 
    var match = this.href.match(/#[^#]+$/); 
    if (match) { 
     // trigger a click on the object that has an id 
     // matching the hash value in the link 
     $(match[0]).trigger('click'); 
     return(false); // no default processing for the link 
    } 
}); 

來處理初始鏈路上的散列標籤,你可以運行此代碼:

$(document).ready(function() { 
    if (window.location.hash && window.location.hash != "#") { 
     $(window.location.hash).trigger('click'); 
    } 
}); 
+0

謝謝!這不是我正在尋找的,但我修改它適合我的情況,它的工作原理:)非常感謝你! – 2012-04-20 05:38:14

+0

@BrittanySmith:僅供參考,您可以通過單擊左側的大複選標記來表明這是最有用的答案。 – 2012-04-21 17:49:44

4
$(function() { 

    $('#example').on('click', function() { 
     alert('was triggered'); 
    }); 

    $(window.location.hash).trigger('click'); 

}); 
+0

嗯,這裏的問題是:如果我去那裏,會出現很多不同的圖像,每個圖像都需要一個獨特的功能 - 我希望有一種方法可以查看他們URL中的哈希代碼是什麼,並觸發圖像看起來有相同的匹配ID – 2012-04-20 03:38:54

0

插件是你的朋友。谷歌快速顯示,本阿爾曼的jQuery BBQ圖書館可以引導你一個有益的手!

(無關:jQuery的很酷的名字庫是一個真棒除了你未來的項目!)

+0

我之前在看那個,但是我找不到我需要這個工作的東西 - 除非我錯過了它? – 2012-04-20 03:46:48