我正在尝试扩展jQuery对象,但这样做有些困难。
$(document).ready(function() {
$('.single-item').slick({
dots: true,
infinite: false,
speed: 500,
customPaging: function(slider, i) {
// Theres a lot of stuff in this, removed for brevity
},
progressBar: function(slider, i) {
// Want to create this method
// alert is not defined
window.onload(window.alert("YES"));
}
});
// slick is not defined
console.log(typeof(slick));
});
我正在尝试很多东西,例如使用jQuery的“extend”:
var progressBar = function(slider, i) {
window.onload(window.alert("YES"));
};
$.extend(slick, progressBar);
// Also tried '.slick-slider' in place of slick
也尝试实施:
$.fn.progressBar = function(i) {
window.onload(alert(this.i))
};
$('.single-item').progressBar(i);
“customPaging”存在于主js文件中,我不想改变它 - 而是将其他方法扩展到该对象。它以“slider”和“i”作为参数。由于它已存在于主js文件中,因此很容易操作它。
但是,我想创建一个名为“progressBar”的全新方法,该方法还可以访问对象的“slider”和“i”变量。
任何人都可以帮助我了解正在发生的事情,并演示如何像我想要的那样创建方法“progressBar”吗?
答案 0 :(得分:0)
它不起作用,因为你将方法添加到某个插件的配置对象,而不是扩展jquery元素。如果你想为插件添加新方法,你可能需要编辑它的代码。