需要帮助委派我的jquery插件



我有一个用于省略号文本的jquery插件。问题是,现在我需要在普通内容中使用这个插件(使用淘汰)。如果页面的所有元素都是普通加载的,我怎么能在这些元素中使用这个插件呢?

我的插件:

(function ($){
    $.fn.ellipsiText= function(options) {
    var settings = $.extend({
        length : 30,
        ellipsi : "..."
        }, options );
return this.each(function() {
    var elem = $(this);
    var txt = elem.text();
    if (txt.length>settings.length) {
         elem.text(txt.substr(0,settings.length - settings.ellipsi.length) + settings.ellipsi );
    }
});
};

您可以将相同的函数转换为敲除自定义绑定。

省略号文本绑定:-

ko.bindingHandlers.ellipsiText = {
 init: function (element, valueAccessor, allBindingsAccessor) {
    $el = $(element);
    ko.utils.registerEventHandler(element, "change", function () {
        var observable = valueAccessor();
        observable($el.val());
    });
 },
 update: function (element, valueAccessor, allBindingsAccessor, context) {
    var options = allBindingsAccessor().ellipsiTextOptions || {};
    var settings = $.extend({
        length: 30,
        ellipsi: "..."
    }, options);
    var value = valueAccessor();
    var $element = $(element);
    var txt = value();
    if (txt.length > settings.length) {
        $element.text(txt.substr(0, settings.length - settings.ellipsi.length) + settings.ellipsi);
    }else {
        $element.text(txt);
    }
 }
};

Fiddle演示

最新更新