我有一个简单的形式,每行包含3个输入字段.在其中一个字段中,我使用jscolor.js(字段有一个class =“color”,因此绑定了JS).
但是,当我使用jQuery的delegate()添加新行时,输入字段不绑定JS,并且不存在预期的功能. http://jsfiddle.net/alexwald/qARzP/
我认为问题出在:
>我如何定义行变量,或
>我正在使用带有.delegate的不正确的选择器,所以它应该是别的而不是形式..?
任何帮助非常感谢.
最佳答案
您的代码有几个问题:
原文链接:https://www.f2er.com/jquery/428024.html>您在“line”变量中使用ID. ID必须在HTML文档中是唯一的.您最好使用名称属性,或以不同方式创建新行,以便更改ID.
>为什么要为“添加”按钮委派“点击”事件?事件委托用于能够自动将事件“绑定”到动态创建的元素.在您的示例中,“添加”按钮对页面是静态的,您不需要使用委托,只需.click()或.bind().
>创建新行后,您必须在新字段上显式初始化jscolor,它不会自动发生.首次解析您的页面时,现有的< input class =“color”/>由jscolor插件初始化,但之后的insterted元素不再存在,脚本已经运行了.
而这jsfiddle用于测试.