2012-07-11 8 views
6

を動作していない:jQueryの内部jQueryの.on()私は、次ている

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

私は、次のを持っています

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

これは動作しません。私はIE9を使用しています。

誰でもJqueryのどのバージョンが.on()をサポートしているか知っていますか?

+0

IEの最新バージョンを使用していますか?また、 '#submit'は動的に生成されますか? –

+2

「機能しない」とはどういう意味ですか?何かエラーがありますか?何が起こると思いますか? – j08691

+0

愚かな質問かもしれませんが、jQueryをロードしていますか?そしてもしそうなら、どのバージョン? .on()はやや新しいです。 – naspinski

答えて

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

+0

@ネムケ:ようこそ。お役に立てて嬉しいです。 :) – Shyju

3

あなたが試行しjQuery.jsをロードすることを確認してください。

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

のこのバージョンは、次の交互に試してみてください。

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

OR

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

.live()も動作します(非推奨) – naspinski

1

要素のIDとして '予約された'名前を使用すると、IEはうまく機能しません。

あなたが実際に言及されている「提出」要素れていることを確認します

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

+0

'#submit'はIE9でうまく動作します。 http://jsfiddle.net/wS4xC/1/ –

+0

@Rocket - これは私にとってもうまくいく!!私はJqueryの古いバージョンかもしれないと思う。どのバージョンがサポートされていますか? –

+0

@NatePet:jQueryの最新バージョンは1.7.2です。 –

0

あなたが「#submit」より別の何かへの入力のIDを変更した場合、あなたのコードは素晴らしい作品、このフィドルを参照してください。ドキュメントの読み込み時に存在します。動的に作成している場合、 'on'関数はそれをバインドするものがありません。

0

IE9を互換モードで使用しているときにこれが発生しました。注:IE9を通常モードで使用しても問題はありませんでした。

私は、ちょうど立ち上げられたサイト(スクリーンショットサービスを使用する以外に、多くのクロスブラウザテストが許可されていませんでした)に対してより完全なQAを行うことができました。 $( "something")をon( "click" ...)から$( "something")に変更します。

+0

これは基本的に[* mgraph *の回答](http://stackoverflow.com/a/11439239/1715579)と同じですか? –

+0

私はそれがうまくいかない具体的な例を与えました、他の方法は、現代のブラウザで動作します。 – josh1978

関連する問題