如何选择jquery原型添加的dom元素?

时间:2014-04-25 13:03:08

标签: jquery dom select

我想检查原型和我的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的文本。

2 个答案:

答案 0 :(得分:1)

我不完全确定你的问题是什么。但是从我收集到的内容以及你的JavaScript代码片段中,我预感到你会遇到并发问题。

例如:

j("#modal_form_div").dialog("open");
tinyMCE.activeEditor.dom.setHTML(text);

在这里,您询问dialogopen,然后运行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/