2010-06-20 61 views
1

嚴重的,最簡單的jQuery代碼以往根本不工作真的,真的簡單的jQuery不工作:(

<script type="text/javascript"> 
$(document).ready(function(){ 

$('.codeswitcher').click(function() { 
     alert("You clicked it"); 
}); 

}); 
</script> 

,然後在我的頁面結構,我有這樣的:

<div class="codeswitcher"> 
<img src="http://mysite.com/images/codeswitcher.png" alt="codeswitcher"> 
</div> 

這只是一個32x32px圖像。你也可以點擊它,但沒有任何反應!:(我也改變了我的jQuery選擇到.codeswitcher imgdiv.codeswitcher,但仍然一無所獲。

我還有其他jQuer y代碼也運行在頁面上就好了。出了什麼問題?

謝謝!

傑克

+0

檢查是否存在任何jQuery衝突! – 2010-06-20 13:02:53

回答

2

首先,你是不是瘋了,你的代碼示例工程:http://jsfiddle.net/c3e6X/

檢查,看看你的代碼運行之前有一個JavaScript錯誤,只需打開控制檯,並期待。

如果它被創建爲動態,例如, AJAX那麼你應該使用.live()來代替,像這樣:

$(function() { 
    $('.codeswitcher').live('click', function() { 
    alert("You clicked it"); 
    }); 
}); 
+0

jsfiddle看起來像一個整潔的網站!順便說一句,謝謝你的確認。 問題在於它是由Ajax生成的。感謝您告訴我,我不知道您必須在這種情況下選擇不同的方式! – Jack 2010-06-20 12:52:51

+0

不能接受你的答案另外9分鐘雖然......但是,謝謝:) – Jack 2010-06-20 12:53:28

+0

@傑克 - 選擇器在當時**運行**,並附加一個'click'處理程序到它找到的元素...這只是沒有找到:)多一點解釋:'.live()'聽事件冒泡到'document' ...因爲新老元素以同樣的方式冒泡事件,它只是不會無論什麼時候加入。 – 2010-06-20 12:54:45