-1

http://portfolio.paulchelmis.com/design/design

在一个投资组合网站上工作,到目前为止,我已经能够通过搜索等找出我众多问题中的每一个,直到现在。无论如何,单击右侧网格中的第一个或第二个链接。我的问题是关于 jquery 的.html()方法——我设置了它,以便在单击其中一个信息卡时,使用上述方法插入其中.thumbinfo的 html 。#detailtext#detailimages

这很好用——但在里面#detailtext div我有两个下一个和上一个按钮(.btnnext& .btnlast)用于更改“页面”而无需先关闭。问题是我似乎根本无法触发这些按钮,除非将它们从父 div 中取出。更重要的是,据我所知,这些按钮不会触发任何事件,而不仅仅是.html命令。

我将其中一个包裹在#clicked <a>标签中,以确保它不仅仅是 z-index 问题或其他问题。

无论如何...是否有解决此问题的方法,或者我应该找到解决方法?非常感谢任何见解。

TL;DR:jQuery 的 .html 事件或任何事件在被先前注入的 html 内部的元素(来自 .html() 方法)触发时似乎不起作用。

4

1 回答 1

1

对于动态添加的元素,您需要使用 jQuery 的.on()函数来绑定到页面中已经存在的元素。

事件处理程序仅绑定到当前选定的元素;当您的代码调用 .on() 时,它们必须存在于页面上。为确保元素存在并且可以被选择,请在页面 HTML 标记中的元素的文档就绪处理程序内执行事件绑定。如果将新 HTML 注入页面,请在将新 HTML 放入页面后选择元素并附加事件处理程序。

例如,要将 click 事件绑定到动态添加的表格行,您可以绑定到文档(或者理想情况下,绑定到 DOM 中更接近的元素以获得更好的性能):

$(document).on("click", "tr", function(event){
  alert($(this).text());
});
于 2013-04-30T15:22:35.693 回答