[英]Unable to attach event listeners to element rendered in froala rich text editor
[英]Recursively replaced element with editor (and back) breaks event listeners
背景:我的网站上有一些值可以通过JavaScript和Ajax编辑。 Ajax工作正常,我可以编辑值,但在保存值后,我无法再次编辑它而无需重新加载页面。
我将问题简化为:原始元素被HTML表单替换。 提交表单时,表单本身将由新版本的display元素替换,但事件侦听器已损坏。
我把一些示例JS代码( JSfiddle )放在一起,它不能像我期望的那样工作。
var text = $('<em/>').text('click me!');
text.click(function() {
var button = $('<input type="button" value="Click me, too" />');
button.click(function() {
$('#container').html(text);
});
$('#container').html(button);
})
$('#container').html(text);
会发生什么:
click
ed文本替换为窗体(为简单起见保存文本元素) click
显示的文本 click
文本再次工作,如步骤2(现在不起作用) 为什么再次使用text
对象时click
事件会丢失?
使其工作而不是重写整个结构的一个选项是使用绑定事件克隆元素:
text.click(function() {
...
button.click(function() {
$('#container').html(text.clone(true));
});
...
})
$('#container').html(text.clone(true));
演示: http : //jsfiddle.net/J8Sa7/2/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.