2015-07-02 23 views
0

我想添加一个可点击的div到sceditor。基本要求是使用wysiwyg并以编程方式将一个元素添加到编辑器中,当用户单击它时可以显示一个弹出窗口。插入一个弹出的DOM节点到所见即所得

要做到这一点我使用:

var text = "<div onClick='editdiv(this)'>"+name+"</div>";▓ 
$('.sceditor').sceditor('instance').insert(text); 

这就将DIV到编辑器,但是当我点击它,我得到一个错误说没有定义editdiveditdiv是一个存在于运行上述代码的javascript相同的javascript文件中的函数。

有人可以告诉我我做错了什么和/或达到我想要的方式吗?谢谢!

+0

那'editdiv'住在一个JavaScript文件并不意味着它是由HTML事件函数到达。大部分的JavaScript函数都存在于私有闭包中,这是一种名称空间。如果你写了javascript,你可以确保editdiv是已知的,当你在javascript文件中写入'window.editdiv = editdiv'时。 – ikrabbe

回答

0

你想要什么是不可能没有缺点。
事件只能在活动的浏览实例内被捕获(我认为这就是名字)。 contentEditable=true"中的所有内容都不是活动浏览实例
基于此,您需要终止contentEditable并在其中创建一个新内容。例如(代码未测试):

var text = "<div contentEditable='false' onclick='editdiv(this)'><div contentEditable='true'>"+name+"</div></div>"; 
$('.sceditor').sceditor('instance').insert(text); 

这应该作出这样的单击事件按预期方式工作