Jq在IE8上没有正常工作

时间:2014-01-17 13:39:08

标签: javascript jquery

也许有人看到并且可以回答问题,为什么IE8上没有工作警报@第一行'lov_Dg2Id_D_1',但在下一个'lov_Dg2Id_D_2'上一切正常。

var SecondDiagnosis=$( "span[id^='lov_Dg2Id_D_']" );
var SpanBlock2=SecondDiagnosis.find('a');
var eventH2=SpanBlock2.attr( "onclick" );
//SpanBlock2.attr("onclick", "DgIdOnClick(document.getElementById('MovementNumber_D_'+parentElement.getAttribute('id').substring(12)).id,2);"+eventH2);
SpanBlock2.attr("onclick", "alert('HI!');"+eventH2);

Mabe是如何添加onclick事件的其他方法?

感谢有用和正确答案保证;)

2 个答案:

答案 0 :(得分:2)

了解您正在使用的库。

您不使用attr来设置事件! jQuery为此提供了on()click()等方法。

SpanBlock2.on("click", function() { alert('HI!'); });

您不需要复制/调用原始事件,它仍将存在。

如果您想更改订单,则需要绑定事件

$("button").each( 
    function() {
       var btn = $(this);
        var oldClick = btn[0].onclick;
        btn.on("click", function(){ alert("a"); });
        if(oldClick) {
            btn[0].onclick = null;    
            btn.on("click", oldClick);
        }
    }
);

http://jsfiddle.net/7K9pU/

答案 1 :(得分:1)

改变这个:

SpanBlock2.attr("onclick", "alert('HI!');"+eventH2);

到此:

var SecondDiagnosis=$( "span[id^='lov_Dg2Id_D_']" );
var SpanBlock2=SecondDiagnosis.find('a');

SpanBlock2.on("click", function(){
   // all your stuff you want on click of it.
});