2014-01-17 27 views
1

也许有人看到并可以回答问题,为什么IE8不能正常工作警告@第一行'lov_Dg2Id_D_1',但是接下来的'lov_Dg2Id_D_2'一切正常。在IE8上不能正常工作的Jq

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事件?

感谢有益和正确答案guiranteed;)

+1

如果你使用j查询为什么不用'.click()'或'.on()'方法添加点击处理程序? – nnnnnn

回答

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/

+0

在这种情况下警报是在基本事件之后:(这个例子我上面提到的警报是第一个 –

+0

大概作者在这里提出问题以更好地理解jQuery,也许有些恩典会很好;) – Sampson

+0

@Speakwithsystem刚刚发布了一些代码以使内联事件在新添加的内容之后生效。 – epascarello

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. 
}); 
+0

Dier Jai! JQ是不是我最好的一面你可以请修改所有4行基本问题上发布什么 谢谢! ;) –

+0

@Speakwithsystem,所以你也想有一个提醒。 – Jai

+0

我不明白你如何修改代码以使其正常工作的例子。你能改变第一个邮政编码吗? 谢谢,我欣赏它;) –