我想检查原型和我的jQuery脚本是否兼容。在原型应用程序中,添加了一些带有textarea的div。在document.ready
之后我无法访问它。我也试过j('#the_parent_div_where_the_divs_are_added').bind("DOMSubtreeModified", function () {...});
,但这也没有用。任何想法如何实现原型的焦点功能添加textareas?
这是我的jquery焦点函数,它可以与静态textarea元素一起使用,但不能动态添加:
j('.cright_txtarea').focus(function () {
id = j(this).attr('id');
text = j(this).html();
j("#modal_form_div").dialog("open");
tinyMCE.activeEditor.dom.setHTML(text);
return false;
});
此函数在模态窗口中的tinymce编辑器中传输textarea的文本。
答案 0 :(得分:1)
我不完全确定你的问题是什么。但是从我收集到的内容以及你的JavaScript代码片段中,我预感到你会遇到并发问题。
例如:
j("#modal_form_div").dialog("open");
tinyMCE.activeEditor.dom.setHTML(text);
在这里,您询问dialog
至open
,然后运行yout tinyMCE
命令复制文本。问题是,tinyMCE
可能会在对话框打开之前运行它的命令。
此外,由于同样的原因,您正在寻找的元素可能尚不存在。如果您正在寻找TinyMCE编辑器或其中的一部分,document.ready
可能不存在。
解决方案:回调
在 jQuery UI对话框(我假设)打开之后做东西<
>
http://api.jqueryui.com/dialog/#event-open
在 TinyMCE编辑器加载后执行:< http://www.tinymce.com/wiki.php/Configuration:init_instance_callback
答案 1 :(得分:1)
如果您认为代表团是可行的方法,那么您就是这样做的:
j(document).on('focus', '.cright_txtarea', function () {
// do stuff
});
以下是一个示例:http://jsfiddle.net/d5dZ7/