2014-01-17 66 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

我不明白你如何修改代碼以使其正常工作的例子。你能改變第一個郵政編碼嗎? 謝謝,我欣賞它;) –