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

时间:2015-01-05 05:57:32

标签: javascript jquery

我有一个jquery函数

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

功能是

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

我将把它放在document.ready中 $(”。类)reducetext(10);

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

我想要的是

这些'.class'元素将使用ajax

动态加载

所以每当ajax打电话时 我可以打电话给$('。class')。reducetext(10);

但我不想在每次ajax调用上调用它

在一个电话中,我想这样做

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

2 个答案:

答案 0 :(得分:1)

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

即使对于动态创建的元素,也会应用像$(elem).text('...')这样的东西。

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

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

对于IE,您使用propertychange方法。

答案 1 :(得分:1)

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

这将是一个开销设置另一个功能并为此运行它。


回复您的评论:

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

读取: