簡體   English   中英

需要幫助委派我的jquery插件

[英]Need help delegating my jquery plugin

我有一個用於省略文字的小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);
    }
 }
};

小提琴演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM