当我附加 html 元素时,它会覆盖点击功能

发布于 2024-12-06 06:26:36 字数 431 浏览 0 评论 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);
   });

在构造函数中,

this._x = x;
x++;

当我单击 testa 时,他给了我 this._x 最后一个 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);
    this.div.children("#testa"+this._x).bind('click', function(){
          alert(this._x);
   });

in constructor

this._x = x;
x++;

when i click testa he gives me this._x last x number
is there an override?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

画尸师 2024-12-13 06:26:36

是的,JS 事件与元素本身相关。如果删除并重新创建一个元素,处理程序也会随之而来。您可以重新连接它们,或者研究使用 jQuery 的 .live() 功能。

Yes, JS events are tied to the element itself. If you delete and recreate an element the handlers go with it. You can either re-connect them, or look into using jQuery's .live() functionality.

愁杀 2024-12-13 06:26:36

事件侦听器中的 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);
   });

this._x in your event listener points to non existant property of (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);
   });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文