微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 使用delegate()新添加的元素不会绑定jscolor.js

我有一个简单的形式,每行包含3个输入字段.在其中一个字段中,我使用jscolor.js(字段有一个class =“color”,因此绑定了JS).

但是,当我使用jQuery的delegate()添加新行时,输入字段不绑定JS,并且不存在预期的功能. http://jsfiddle.net/alexwald/qARzP/

我认为问题出在:

>我如何定义行变量,或
>我正在使用带有.delegate的不正确的选择器,所以它应该是别的而不是形式..?

任何帮助非常感谢.

最佳答案
您的代码有几个问题:

>您在“line”变量中使用ID. ID必须在HTML文档中是唯一的.您最好使用名称属性,或以不同方式创建新行,以便更改ID.
>为什么要为“添加”按钮委派“点击”事件?事件委托用于能够自动将事件“绑定”到动态创建的元素.在您的示例中,“添加”按钮对页面是静态的,您不需要使用委托,只需.click()或.bind().
>创建新行后,您必须在新字段上显式初始化jscolor,它不会自动发生.首次解析您的页面时,现有的< input class =“color”/>由jscolor插件初始化,但之后的insterted元素不再存在,脚本已经运行了.

这是一些修改过的代码

而这jsfiddle用于测试.

原文地址:https://www.jb51.cc/jquery/428024.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐