2012-03-28 194 views
1

我有一個鏈接與縮略圖相匹配的集合。我需要將這些縮略圖加載爲背景圖像設置爲div的div。我使用的是單個圖像,其中包含所有縮略圖,因此我不能將圖像作爲圖像加載。點擊圖片應該做同樣的點擊鏈接不過,我做了一個的jsfiddle來說明我的意思(並顯示問題):觸發一個錨鏈接點擊

the JSFiddle

當我點擊有一個新的窗口,兩個環節打開它有我想要的網站。但是當我點擊縮略圖時,我無法點擊所觸發的鏈接。

點擊鏈接將有額外的功能(統計數據),所以我更喜歡觸發鏈接的點擊過相同的自定義功能結合到錨和的div兩者。

在此先感謝

回答

5

你好工作演示在這裏:http://jsfiddle.net/f6FJ3/19/

的觸發原因閱讀:jQuery: trigger click() doesn't work?

It's important to clarify that doing jQuery('#open').click() does not execute the href attribute of an anchor tag so you will not be redirected. It executes the onclick event for #open which is not defined.

下面的代碼將得到窗口所需的輸出獲得點擊圖片打開。

jQuery代碼

$(document).ready(function(){ 
    $('.tmb').click(function(){ 
     var target=$(this).parent().find("a"); 

     $("#debug").text("clicked "+target.text()); 
     //target.triggerHandler('click'); 
     window.open(target.attr('href')); 

    }); 
});​ 

希望這有助於,乾杯!

7

在HTML4 click事件被定義爲僅輸入元素和一些瀏覽器中,最值得注意的是FF,strictly followed the specification。然而HTML5遊戲的改變,任何現代的瀏覽器實現了這個功能, jQuery的仍然有對於這個事件的特殊情況(摘自jquery trigger method):

if (!onlyHandlers && !event.isDefaultPrevented()) { 

    if ((!special._default || special._default.apply(elem.ownerDocument, data) === false) && !(type === "click" && jQuery.nodeName(elem, "a")) && jQuery.acceptData(elem)) { 

    // Call a native DOM method on the target with the same name name as the event. 

作爲一種變通方法,您可以更改代碼:

target.trigger("click"); 

target.get(0).click();