0

IE7 を除くすべてのブラウザーで正常に動作するタグに、1 つの関数を動的に追加したいと考えています。

<head>
<script type="text/javascript" src="jquery-1.8.3.js"></script>
<script type="text/javascript">
function show(num){
if(num==1){
$('#one').removeAttr('onclick')
$('#two').attr('onclick','show(1)')
alert(0)
}}
</script>
</head>
<body>
<a href="javascript:void(0)" onclick="show(1)" id="one">one</a>
<a href="javascript:void(0)" id="two">two</a>
</body>
</html>
4

3 に答える 3

5

これは、イベント ハンドラーをアタッチ/デタッチする正しい方法ではありません。代わりに、この方法論を使用してみることができます。

$('#one').off('click');
$('#two').click(function() { show(1); });

.click()のラッパー関数です.on('click')

于 2013-06-27T13:40:52.617 に答える
2

onclickjQueryを使用しているため、属性を使用する代わりにjQueryを使用してイベントハンドラーを登録します

.on().off( )を使用する代わりに、イベント ハンドラを 1 回だけ呼び出したいので、.one()イベント レジスタを使用できます。

jQuery(function(){
    function handler(num){
        alert(num)
    }
    $('#one').one('click', function(){
        handler(1);
        $('#two').on('click', function(){
            handler(1);
        });
    })
})
于 2013-06-27T13:42:10.883 に答える
-3

http://forum.jquery.com/topic/click-not-working-for-ie7-8から取得

nextLink の id を持つ div の非常に単純な .click() イベント設定があります。これは、すべての「実際の」ブラウザで完全に機能します。

$('#nextLink').click(function () {
       alert("nextLink here");
       });

      <div id="nextLink">Next</div>
于 2013-06-27T13:44:44.087 に答える