在下面的脚本中(现场示例位于http://jsbin.com/aliket/1/,源代码位于http://jsbin.com/aliket/1/edit),我创建了两个对话框,其中一个( #dialog2) 是另一个 (#dialog1) 中的孩子。如果我在#dialog1 之前创建#dialog2,打开#dialog1 然后打开#dialog2,TinyMCE 插件将不再工作。通过不工作,我的意思是 TinyMCE 的文本框被遮住了,任何以前输入的 HTML 都消失了。这是两个对话框的顺序问题还是 TinyMCE 的问题?为什么会这样?但是,我确实知道如何解决它:只需在#dialog2 之前创建#dialog1。谢谢
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<title>Testing</title>
<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.1/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/ui/1.10.1/jquery-ui.js"></script>
<script src="http://tinymce.cachefly.net/4.0/tinymce.min.js"></script>
</head>
<body>
<button id="click1">Click 1</button>
<div id="dialog1" title="dialog1"><div id="tinymce"></div><button id="click2">Click 2</button></div>
<div id="dialog2" title="dialog2">Hello</div>
</body>
<script>
tinymce.init({selector: "#tinymce"});
$(function() {
$('#click2').click(function(){$("#dialog2").dialog("open");});
$("#dialog2").dialog({autoOpen:false,resizable:false,height:300,width:240,modal:true});
$("#click1").click(function(){$("#dialog1").dialog("open");});
$("#dialog1").dialog({autoOpen: false,modal: true});
});
</script>
</html>