我试图克隆传递给函数的元素以及与之关联的所有事件,因为在文档就绪中定义了$('.example').on('click', function(e) ... )}
这样的事件。
所以我做了以下事情:
$('.example').on('click', function(e) {
e.preventDefault();
surpriseMe($(this));
});
我试着在这里将事件克隆到这个元素旁边(我需要抓取父元素,.html()
只返回内部html,因此元素本身):
function surpriseMe(element) {
var newElement = element.parent().clone(true,true).html();
surprise.insertBefore(element.parent());
if (numElements == 3) {
newMonth = $('<li class="item-dragable-placeholder">'+ newElement +'</li>
}
}
我相信true, true
内的.clone()
应强制父母也抓住其子事件,但每当我点击新放置的元素时,都不会发生任何事情
答案 0 :(得分:2)
使用事件委派...
变化:
$('.example').on('click', function(e) { ...
要:
$(document).on('click', '.example', function(e) { ...
注意:而不是使用document
,找到页面加载时可用的最近的祖先元素(容器)并使用它。
答案 1 :(得分:0)
当你进行插入时,不要插入新元素,而是要求只插入html,删除html部分,它将为你提供元素及其功能。
$(document).ready(function(){
var numElements=0;
function surpriseMe(element) {
var newElement = element.parent().clone(true,true);
newElement.insertBefore( ".inner" );
numElements++;
if (numElements == 3) {
newMonth = $('li.item-dragable-placeholder').insert(newElement);
}
}
$('.example').on('click', function(e) {
e.preventDefault();
surpriseMe($(this));
});
});
请参阅以下(示例)[http://jsfiddle.net/dshun/1j9khfnc/4/](please注释,因为给出的示例代码不完整。例如,未声明变量surprise,numElements。我在小提琴中做了一些假设)
import json
def func():
lst = []
lst.append('1')
lst.append('2')
print json.dumps(lst) ## <-- `dumps` dumps to a string
if __name__ == '__main__':
func()