在通过js / jQuery动态加载的元素上执行某些操作的最简洁方法是什么?基本上,用户添加了一个可能包含所见即所得编辑器的表单(取决于上下文);这是一个需要像$(".wysiwygTA").editor();
这样的东西的textarea。当然,我可以这样做:
var newForm = 'some_form_loaded_via_ajax_with_a <textarea class="wysiwygTA"> in_it';
$(".formWrapper").append(newForm);
$(newForm).find(".wysiwygTA").each(function(){ $(this}.editor(); });
但这对我来说似乎并不干净。理想情况下,我想以
的方式做点什么$(document).listenForAddedTextarea(function(textarea){textarea.edtior();});
这样我就可以从多个地方添加表单。我可以在一个单独的函数中隔离编辑器调用,然后调用它,但每次我想添加一个元素时,我仍然需要额外的一行代码。
所以:最好的解决方法是什么? :O)
最诚挚的问候,
Rasmus Dencker
答案 0 :(得分:0)
使用Bind方法动态绑定:
$( document ).bind( "listenForAddedTextarea", function(textarea) {
textarea.edtior();
});
答案 1 :(得分:0)
JS中没有elementAdded
事件。您唯一的选择是您提到的第一个选项。从服务器返回的HTML中添加脚本是一个坏主意IMO。
答案 2 :(得分:0)
$(document).on("listenForAddedTextarea", function(textarea) { textarea.edtior(); });
(文档)$ .trigger(&#34; listenForAddedTextarea&#34);