2012-01-06 7 views
0

以下のコードはFFで正常に動作しますが、onclick関数には引用符が含まれているためIEがエラーをスローします。 IEでこの作業を行うには?私は例 Jqueryのattrを引用符で置き換えてもIEでは動作しません

<a href="#" onclick="add('1','val1')" id="link1">Link1</a> 
<a href="#" onclick="add('2','val2')" id="link2">Link2</a> 

<script> 
function add(id,val) { 
//do something 
$('#link'+id).attr('onClick',$('#link'+id).attr('onClick').replace("add","remove")); 
} 

function remove(id,val) { 
//do something 
$('#link'+id).attr('onClick',$('#link'+id).attr('onClick').replace("remove","add")); 
} 
</script> 

このような何かをやっている

:リンク1をクリックした後、リンクはIEはそれで問題があり、あなたは.propを使用して試みることができる

<a href="#" onclick="remove('1','val1')" id="link1">Link1</a> 
+0

あなたは 'onClick'の値が何である投稿することができますか? – Blender

答えて

0

は、hrefにonclickを変更し、IEでも動作します。

0

の下に更新する必要がありますIEでうまくいくメソッド。しかし、常にIEの問題がイベントハンドラの変更を混乱させる原因になります。

「add」とremoveの間でクラスを切り替えるなどの属性であっても、毎回同じ関数を呼び出し、ページのどこかに状態を保存する方がよいでしょう。

var $link = $('#link'); 
var click = $link.attr('onClick'); 

$link.removeAttr('onClick'); 
$link.click(function() { 
    eval(click.replace("XYZ","abc")); 
}); 

をしかし、私は強くあなたがonClickの使用を停止し、jQueryを使って結合事象を開始勧め:

0

これはうまくいくかもしれません。 onClickにコードを投稿できたら、標準のjQueryオブジェクトと関数に変換できます。

+0

質問を更新してください。助けてください。 – ChandraZ

0

は、おそらく助けています:

function add(id,val) { 

$('#link'+id).attr('onClick',function (i, click) { 
        var str = new String(click); 
        return str.replace("add","remove"); 
       }); 
} 
関連する問題