2012-07-04 89 views
1

以下jQuery無法按預期工作。我只是試圖點擊一個圖像時觸發一個事件。jQuery點擊未在圖像上觸發

$(document).ready(function() { 
    alert("document.ready has fired"); 

    $("img").click(function() { 
     alert("image has been clicked"); 
    }); 
}); 

當頁面加載時,我看到「document.ready has fired」警告,所以jQuery和我的自定義.js文件被正確引用。

我懷疑我錯過了一些非常明顯的東西,但是什麼?

更新: 的jQuery是正確的(在新頁面的作品,但不是我的現有頁面上),我的解決方法,現在我已經使用了onclick<img>標籤,因爲這不得不說是一個「權宜之計',我會看看發生了什麼,謝謝大家的意見。

+0

做你的所有圖像加載頁面加載? – thecodeparadox

+0

是的 - 我看到了我所有的圖像。該頁面看起來已正確加載。 – bgs264

+0

D你有鏈接,任何控制檯錯誤? – 472084

回答

0

我傾向於使用jQuery的綁定f因爲如果任何東西在DOM中動態改變,它仍然會選擇事件,因爲我在過去使用jQuery的.click函數也遇到了問題,這導致了相同的問題。

$(document).ready(function() { 
    alert("document.ready has fired"); 

    $("img").bind('click', function() { 
     alert("image has been clicked"); 
    }); 
}); 
+0

這工作 - 謝謝:) – bgs264

1

如果所有的圖像的arent加載照片直接在頁面加載時,你可以試試這個

$(window).load(function() { 
    alert("window.load has fired"); 

    $("img").click(function() { 
     alert("image has been clicked"); 
    }); 
}); 

$("body").on("click", "img", function() {... 
+1

爲了向其添加事件偵聽器,不需要加載圖像,或者甚至不需要src。 – Esailija

+0

@Esailija真的,但如果他們動態地添加到DOM,最後一行可能是一個選項 – Johan

0

只是一個猜測:

試試這個:

$("img").each(function(){ 
    $(this).click(function() { 
     alert("image has been clicked"); 
    }); 
}); 
+0

不錯,但因爲原始代碼中的選擇器(「img」),它將拾取所有img元素,並且只創建1個工作記錄if你喜歡在哪裏,因爲這將使許多記錄做同樣的工作。希望有幫助:) –