我想基于拖放实现表单构建器。
我添加了克隆掉落元素的按钮。 但克隆后#34;删除"和"克隆"按钮不起作用。
jsfiddle.net/284mx1vn /
感谢您的帮助!
答案 0 :(得分:0)
我刚刚调整了您的Fiddle
我添加了两行
$(document).on("click", ".remove", function(){
$(this).closest(".input-block").remove();});
$(document).on("click", ".add", function(){
$(this).closest(".input-block").clone().appendTo("#drop-space");
});
因此它适用于动态创建的元素,并为方便起见将“add”类添加到“add”按钮。
问题是,当加载文档时,事件必须绑定到DOM中已存在的元素。作为解决方案,可以使用事件委托 - 意味着从静态父元素委托事件(在这种情况下是按钮的单击事件),例如, $(document)
。这个父元素将使用jquery on()
函数将事件委托给该类的所有子元素,即使这些元素稍后添加。
供参考:http://api.jquery.com/on/和https://api.jquery.com/on/#on-events-selector-data-handler,“直接和委派活动”部分:
“事件处理程序仅绑定到当前选定的元素;它们必须存在于代码调用.on()时页面上。”