首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >新插入的HTML不适用于用Rails嵌套形式处理JS事件

新插入的HTML不适用于用Rails嵌套形式处理JS事件
EN

Stack Overflow用户
提问于 2014-04-16 17:11:57
回答 2查看 174关注 0票数 1

我使用nested_forms与Rails 4连同turbo链接+ jQuery插件使其重新启动页面加载。一旦我添加了一个带有应该触发事件的标记的嵌套字段,它就会失败,似乎只有初始页面加载上的内容才能触发js事件。

示例:

代码语言:javascript
复制
$(document).ready(function(){
  $('.address_input_type').on('change', function(){
    showAppropriateAddressFields(this);
  })
});

因此,如果“.address_input_type”最初出现在页面上,但在添加之后会失败,则会触发.address_input_type。有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-16 17:16:32

由于元素是新插入的,您需要使用事件委托

代码语言:javascript
复制
$(document).ready(function(){
  $(document).on('change', '.address_input_type', function(){
    showAppropriateAddressFields(this);
  })
});

尝试找到一个比document (例如容器div)更接近的父元素作为选择器,因为使用document不是很有效。

票数 1
EN

Stack Overflow用户

发布于 2014-04-16 17:15:23

如果在页面加载时查询类的DOM,则将返回一个类似数组的节点对象,该对象在以后添加该类的其他节点时不会自动更新。从一开始就将其添加到页面中,并设置它的样式"display: none“。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23115937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档