Когда я добавляю HTML-элемент, он переопределяет функции щелчка - PullRequest
0 голосов
/ 24 сентября 2011
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);
   });

в конструкторе

this._x = x;
x++;

когда я нажимаю на testa, он дает мне это. есть ли переопределение?

Ответы [ 2 ]

2 голосов
/ 24 сентября 2011

Да, события JS привязаны к самому элементу. Если вы удаляете и воссоздаете элемент, обработчики идут с ним. Вы можете либо заново подключить их, либо изучить использование функции .live () в jQuery.

0 голосов
/ 24 сентября 2011

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