Javascript 需要帮助授权我的jquery插件吗
我有一个用于省略文本的jquery插件。问题是,现在我需要在一个普通的内容中使用这个插件(使用knockout)。如果页面的所有元素都是通过友好方式加载的,我怎么能在这些元素中使用这个插件呢 我的插件:Javascript 需要帮助授权我的jquery插件吗,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,我有一个用于省略文本的jquery插件。问题是,现在我需要在一个普通的内容中使用这个插件(使用knockout)。如果页面的所有元素都是通过友好方式加载的,我怎么能在这些元素中使用这个插件呢 我的插件: (function ($){ $.fn.ellipsiText= function(options) { var settings = $.extend({ length : 30, ellipsi : "..." }, opt
(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);
}
}
};
有没有一种方法可以在不改变淘汰赛内容的情况下做到这一点?实际上我对敲除一无所知,但我整个系统中的代码都使用它(我没有制作),如果我只是在脚本标记中添加它,控制台会说“ko”没有定义,所以我做错了。我已经更新了解决方案。在脚本标记下添加此项之前,必须添加knockoutjs库的引用。