【问题标题】:set value for current elements and dynamically added elements in jquery在jquery中为当前元素和动态添加的元素设置值
【发布时间】:2011-04-14 19:19:35
【问题描述】:

我有以下代码,但它不起作用

$("body").delegate("textarea", "ready", function () {
    $(this).val("custom value");
});

我的意图是为 dom 上的当前元素和将来动态添加到页面的文本区域设置该值,有解决方案吗?

【问题讨论】:

  • 使用您当前的代码,body 的 ready 事件被委托给文本框。然而,在页面加载期间仅触发一次就绪事件,因此当前代码可以很好地设置 $(function(){$("textarea").val("custom value");})
  • @cybernate 适用于页面上的当前元素,但是如果动态添加新的文本区域会发生什么?新元素不会采用该值。
  • 如何添加文本框?应该是脚本。为什么不截取创建文本框的代码并在那里分配值?我认为没有任何可用的事件,如添加的元素可用。
  • Eli 的回答帮助我找到了解决方法,我在每个 ajax 回发中都做了一些非常一般的事情,所以我可以把我的代码放在 ajaxSucess 事件上,谢谢。

标签: javascript jquery events dom


【解决方案1】:

.ready 是在document 上发生的事件,而不是在加载其他元素时发生的事件。不幸的是,也没有一个优雅的解决方案。我能提出的最佳建议是,在您的每个 ajax 请求完成后,选择所有 textareas 并设置它们的值:

// maybe something similar to this.
$(document).ajaxSuccess(function() {
  $('textarea').val('custom value');
});

【讨论】:

    猜你喜欢
    • 2011-11-01
    • 1970-01-01
    • 2011-10-22
    • 2022-11-30
    • 1970-01-01
    • 2021-08-10
    • 1970-01-01
    • 1970-01-01
    • 2018-11-03
    相关资源
    最近更新 更多