1

我有一个JQuery插件可以计算textarea. 但是,如果我在运行时添加了 textarea,append("<textarea></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);
            });
4

2 回答 2

0

在用于将文本区域添加到 div 的按钮的单击事件处理程序中,添加对插件方法的调用。

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

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

祝你好运!

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

$("#buttonID").click(function() {
    ...your code...
    $("#placeToAddNewTextArea").append("<textarea class="newTA"></textarea>");
    $("textarea.newTA").charCount({ ......... });
    $("textarea.newTA").removeClass("newTA");
});

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

于 2012-07-28T21:36:36.257 回答
0

查看 jQuery SuperLive。

根据作者的说法:

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

SuperLive 做到了这一切。

这在 IE 中不起作用。即不支持突变事件。还需要 jQuery 1.7

演示视频:http ://www.youtube.com/watch?v=mh5mGR2GyLY

下载:http ://code.google.com/p/jquery-superlive/downloads/list

于 2012-07-29T03:08:01.807 回答