2012-07-11 65 views
6

我有以下幾點:jQuery的。對()不工作

<input type="submit" id="submit" value="Submit" /> 

裏面的jQuery我有以下幾點:

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#submit").on("click", function() { 
     alert('test'); 
    }); 
}); 
</script> 

這是行不通的。我正在使用IE9。

可能任何人都知道哪個版本的Jquery支持.on()

+0

您使用的是最新版本的IE嗎?另外,'#submit'是動態生成的嗎? – 2012-07-11 18:38:59

+2

「不工作」是什麼意思?你有什麼錯誤嗎?你期望發生什麼? – j08691 2012-07-11 18:39:45

+0

可能是一個愚蠢的問題,但你加載jQuery?如果是這樣,什麼版本? .on()有點新。 – naspinski 2012-07-11 18:40:26

回答

6

使用此版本的on

$(function(){ 
    $(document).on("click","#submit", function (e) { 
    //e.preventDefault(); // if you want to prevent default form submission 
    alert('test'); 
    }); 
}); 
+3

tnx,這是一個救命。 IE應該真的死! – Nemke 2013-05-07 09:44:59

+0

@Nemke:不客氣。很高興我能幫上忙。 :) – Shyju 2013-05-07 12:29:45

3

確保您加載jQuery.js然後嘗試:

$("#submit").click(function(){ 
    alert("test"); 
}) 
1

嘗試以下交替:

$('#submit').bind('click', function() { 
    alert('Test'); 
}); 

OR

$("#submit").click(function(){ 
    alert("Test"); 
}); 
+0

.live()也可以使用(不贊成使用) – naspinski 2012-07-11 18:44:21

1

使用'保留'名稱作爲元素的ID時,IE做得不好。

看到這個小提琴,如果你改變了輸入的ID到的東西比「#submit的不同

http://jsfiddle.net/6yAuz/3/

+0

'#submit'在IE9中可以正常工作。 http://jsfiddle.net/wS4xC/1/ – 2012-07-11 18:45:45

+0

@火箭 - 這也適用於我!我想我可能是Jquery的舊版本。它支持哪個版本? – 2012-07-11 19:03:08

+0

@NatePet:jQuery的最新版本是1.7.2。 – 2012-07-11 19:14:05

0

確保「提交」元素,你指的是實際代碼的偉大工程存在於文件加載。如果你正在動態地創建它,'on'函數將沒有任何東西可以綁定它。

0

我在兼容模式下使用IE9時遇到過這種情況。請注意,我在常規模式下使用IE9時沒有問題。

我能夠爲我剛剛啓動的網站做了更全面的質量檢查(除了使用屏幕截圖服務外,時間不允許進行大量的跨瀏覽器測試)。將$(「something」)。on(「click」...)更改爲$(「something」)。click()解決了問題。

+0

所以這和[* mgraph *的答案](http://stackoverflow.com/a/11439239/1715579)基本相同? – 2014-05-30 20:57:14

+0

我給出了一個不適用的具體例子,因爲另一種方式在現代瀏覽器中工作。 – josh1978 2014-06-01 02:29:02