我有一个用于省略号文本的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演示