Javascript 如何在运行时添加的对象上执行Jquery插件

Javascript 如何在运行时添加的对象上执行Jquery插件,javascript,jquery,plugins,runtime,textarea,Javascript,Jquery,Plugins,Runtime,Textarea,我有一个JQuery插件,可以计算textarea中的字符数。 但是,如果我在运行时使用append(“”)添加textarea,例如 如何在附加的textarea上执行此插件 $("textarea").charCount({ allowed: 200, warning: 30, counterText: 'Characters left

我有一个
JQuery
插件,可以计算
textarea
中的字符数。 但是,如果我在运行时使用
append(“”)
添加textarea,例如

如何在附加的
textarea
上执行此插件

$("textarea").charCount({
                        allowed: 200,       
                        warning: 30,
                        counterText: 'Characters left: '    
                });
正在运行时添加textarea

$("#btnAddStep").click(function () {
                var text = "" +
                " <div class='row-fluid'>" +
                "   <div class='span10'>" +
                "      <input type='text' class='span12' placeholder='Type something…'>" +
                "  </div>" +
                " <div class='span2'>" +
                "    <div class='btn-group'>" +
                "        <button class='btn btn-mini' id='btnAddStep'><i class='icon icon-plus'></i></button>" +
                "        <button class='btn btn-mini'><i class='icon icon-minus'></i></button>" +
                "    </div>" +
                "  </div>" +
                " </div>" ;

                $("#response>#steps").append(text);
            });
$(“#btnAddStep”)。单击(函数(){
var text=“”+
" " +
"   " +
"      " +
"  " +
" " +
"    " +
"        " +
"        " +
"    " +
"  " +
" " ;
$(“#响应>#步骤”)。追加(文本);
});

在click事件处理程序中,对于用于将textarea添加到div的按钮,添加对插件方法的调用

由于我看不到完整的代码,我将假设插件也会在运行时在
$(document).ready()
或类似文件中自动调用。如果在调用后添加textarea,则需要重新运行插件

你所要做的就是将你发布的代码再次添加到你的点击事件代码中,但是为了提高效率,我建议你添加另一个选项来搜索具有特定类的文本区域,然后在插件运行后删除该类,而不是在每个文本区域上再次运行插件。这样,你可以给你所有的新文本区域这个类,在插件运行之后,它将永远不会再看到它们

祝你好运

编辑:我的一个朋友正在回头看我,建议我澄清一点:你不必以任何方式修改你的插件(当然,我看不到完整的代码,所以我不能100%肯定这一点,但让我们说我95%肯定)。您要做的是更改事件处理程序(以及document.ready中的任何调用,从技术上讲,document.ready是一个事件处理程序),如下所示:

$(“#按钮”)。单击(函数(){
…你的代码。。。
$(“#placeToAddNewTextArea”)。追加(“”);
$(“textarea.newTA”).charCount({……..});
$(“textarea.newTA”).removeClass(“newTA”);
});

换句话说,您可以使用CSS作为标志,并在插件代码之外创建、使用和删除它们

查看jQuery SuperLive

据作者说:

jQuery SuperLive是我最喜欢的新插件。Allen Mackley和我创建这个来解决大量的applicate JS问题。无论页面上何时存在元素,我们都需要插件工作,如果添加了属性,插件应该重新启用

SuperLive完成了所有这些

这在IE中不起作用。IE不支持突变事件。 还需要jQuery1.7

演示视频:


下载:

您需要使用jQuery 1.7的
.on()
方法,或者对于以前的verison,使用
.delegate()
方法,将此处理程序委托给document对象。您能给我举个例子吗?我需要查看调用函数以计数字符的处理程序。没有,就像在风中撒尿。这个函数叫什么。这是一个点击,有什么方法可以做到这一点?您是否希望在将textarea添加到DOM时运行此操作?当单击按钮时,我将textarea附加到div,是的,我希望在将textarea添加到DOM时运行此操作?
$("#buttonID").click(function() {
    ...your code...
    $("#placeToAddNewTextArea").append("<textarea class="newTA"></textarea>");
    $("textarea.newTA").charCount({ ......... });
    $("textarea.newTA").removeClass("newTA");
});