在动态元素上将字符串限制为 10 个字符 jquery

limit string to 10 chars jquery on dynamic elements

我有一个jquery函数

$('.class').reducetext(10);

函数是

$.fn.reducetext=function(length){
    $(this).text($(this).text().substr(0,length))
}

我会把这个放在document.ready $('.class').reducetext(10);

所以它会减少 .class 元素的字符串

我想要的是

这些“.class”元素将使用 ajax

动态加载

所以每次 ajax 打电话的时候 我可以调用 $('.class').reducetext(10);

但我不想在每次 ajax 调用时都调用它

我想在一个电话内做到这一点

如果是点击或任何类似的事件我可以使用 "on" 但是为此我应该写什么代码?

您不需要重新使用 $('.class').reducetext(10);,因为您没有使用 .class 元素处理任何事件。事件委托是为动态创建的元素完成的,但不需要像您拥有的那样用于简单用例...

$(elem).text('...')这样的东西甚至可以应用于动态创建的元素。

但是等等!您正在使用 ajax 调用来插入元素,然后您有另一个选择,这样您就可以注册像 $('.class').reducetext(10); 这样的方法一次。为此,您需要使用:

$(document).on('DOMSubTreeModified propertychange',function(){
   $('.class').reducetext(10);
});

对于 IE,您使用 propertychange 方法。

为获得最佳性能,请在 AJAX 调用的成功处理程序中添加 $('.class').reducetext(10);

设置另一个函数将是一项开销,运行它就是为了这个。


回复您的评论:

AJAX 不是一个单独的插件。它内置于 Javascript 和 jQuery.

阅读: