2011-09-23 59 views
0
this.div=$j("<div class='test' id='test"+this._x+"'>"+this.getHtml(inner)+"<a id='testa"+this._x+"''>Close</a></div>"); 
    this.div.hide().appendTo($j("body")).fadeIn(100); 
    this.div.children("#testa"+this._x).bind('click', function(){ 
      alert(this._x); 
    }); 

在構造當我附上HTML元素它覆蓋單擊功能

this._x = x; 
x++; 

當我點擊的種皮,他給了我this._x最後x個 有一個覆蓋?

回答

2

是的,JS事件聯繫在一起的元素本身。如果您刪除並重新創建一個元素的處理程序去用它。您可以重新連接它們,或可考慮使用jQuery的.live()功能。

+0

感謝您.live()功能 –

0

this._x在你的事件監聽點的(A._x)不存在的屬性。

this.div=$j("<div class='test' id='test"+this._x+"'>"+this.getHtml(inner)+"<a id='testa"+this._x+"''>Close</a></div>"); 
    this.div.hide().appendTo($j("body")).fadeIn(100); 
    var newX = this._x; 
    this.div.children("#testa"+this._x).bind('click', function(){ 
      alert(newX); 
    });