【问题标题】:Changing text on dyamically generated links更改动态生成的链接上的文本
【发布时间】:2012-02-17 09:09:42
【问题描述】:

我有一些从页面中动态添加和隐藏的链接元素。

它们由第三方 Telerik 控件生成。

我想更改文本的名称,不幸的是唯一的方法是使用jquery。

我已经生成了规则(选择器),当它们显示时捕获编辑链接。但是在初始页面加载时,不会看到任何编辑链接。用户单击某些内容后,将创建这些链接。用户单击其他内容后,这些内容将隐藏,其他一些链接将显示。这些是我需要更改文本的链接。

如何编写 jquery 代码,以便每当将匹配该选择器的元素添加到页面时,按钮文本都会更新?

谢谢!

编辑0

我无法控制它们的生成方式。

有两个网格,父在顶部,子在底部。最初孩子是隐藏的。在顶部网格中选择了一行,底部网格显示该选择的项目。这是将这些链接添加到页面的点(通过 AJAX 异步),因此它们不在 DOM 中(编辑子网格中每个子项的链接)。

希望这更有意义。

编辑1

//catches the links
$("#CustomClass .t-button.t-grid-edit").text("Awesome text instead of Edit");

【问题讨论】:

  • "用户点击后,会创建这些链接。" - 你能控制这背后的代码吗?还是您无法控制要添加的内容以及添加方式?
  • 我很困惑。这个带有所述选择器的元素什么时候被添加到页面中?
  • 这个问题有点难理解。你有任何代码要显示吗?喜欢那个抓住链接的人。无论如何,当您说生成链接时,它们是在页面加载时生成的,还是通过 AJAX 之类的异步调用生成的?
  • 没有看到你的代码你可以使用.on()

标签: jquery html hyperlink


【解决方案1】:

如果您使用的是 jQuery 1.7+,则需要使用 on 将事件处理程序分配给满足您的选择器条件的当前和未来 DOM 元素。

如果你使用的是早期版本的 jQuery,你应该使用delegate

您声明您无法控制它们的生成方式,但您可以控制将内容添加到页面吗?如果是这样,您可以使用自定义事件(也许)并使用 on/delegate 来处理添加到网格中的新项目。

这是一个演示这个的小提琴 -- http://jsfiddle.net/dhoerster/xLvYE/

同样,不确定这是否有帮助。如果我没有正确理解这一点,我会删除。希望这会有所帮助。

【讨论】:

  • on 与事件相关联。并且 jQuery 中没有“元素已添加”事件。好吧,有load,但这仅适用于具有 src 属性的元素,如 img、link 等。
  • "用户点击后,这些链接将被创建。用户点击其他东西后,这些会隐藏,其他一些链接会显示。"听起来您至少可以绑定两个点击事件。
  • @skybondsor 听起来确实如此。我不确定代码是什么样子,这就是为什么我把一个简单的例子放在一起。如果这是正确的方向,那么我认为提问者可以顺其自然。
  • 这很有帮助,而且我完全略过了我可以绑定的两个点击事件的想法,呵呵!谢谢!
猜你喜欢
  • 1970-01-01
  • 2013-10-26
  • 1970-01-01
  • 2012-09-18
  • 1970-01-01
  • 2016-08-25
  • 2017-03-14
  • 2015-04-06
  • 2011-10-01
相关资源
最近更新 更多