gpt4 book ai didi

javascript - 如何引用原型(prototype)中定义的函数

转载 作者:行者123 更新时间:2023-12-01 05:48:08 25 4
gpt4 key购买 nike

我正在尝试向使用 jquery 库的网页添加一项功能,该库似乎没有任何文档。 (来源不明)我的问题主要是由于缺乏对 jquery 插件模型和/或 javascript 内部工作原理的理解。

<强>1。插件启动如下

jQuery('div.carousel').scrollGallery({
mask: 'div.mask',
slider: 'div.slideset',
slides: 'div.slide', ............ });

<强>2。该插件在jquery中定义如下

;(function($){
function ScrollGallery(options) {
this.options = $.extend({
mask: 'div.mask', ...... }, options);
this.init();

<强>3。在 Object.prototype 声明中,我看到定义了以下函数 numSlide

ScrollGallery.prototype = {
....................
numSlide: function(c) {
if(this.currentStep != c) {
this.currentStep = c;
this.switchSlide();
}
},
.......... };

问题。

如何从外部引用 numSlide(int) 函数?

我尝试了以下方法,但没有成功。

myx = jQuery('div.carousel').scrollGallery({ // var myx was added in the global scope
myx.numSlide(1); //error undefined is not a function

我尝试在 myx = jQuery('div.carousel').scrollGallery({ 的末尾添加 return this; 但它仍然返回 jQuery 对象。

我也尝试过

jQuery.scrollGallery().numSlide(2); //error undefined is not a function
jQuery.scrollGallery.numSlide(2); //same error

我需要添加灯泡

// jquery plugin
$.fn.scrollGallery = function(opt){
return this.each(function(){
$(this).data('ScrollGallery', new ScrollGallery($.extend(opt,{holder:this})));
});
};
}(jQuery));

答案(我认为)

看起来 ScrollGalary 对象存储在选择器的数据中。所以我相信我可以执行以下操作 jQuery('selector').data('ScrollGallery').numSlide(2);

无论如何,我决定发布此内容,以防将来有人遇到类似的轻信情况。

最佳答案

实现此目的的一种方法是首先启动 ScrollGallery 对象,然后使用它。

var test = new ScrollGallery();
test.numSlide();

如果你想扩展 jQuery 并使用该函数,你可以按如下方式分配它

$.fn.scrollGallery = new ScrollGallery();

并使用它

$("window").scrollGallery.numSlide();

关于javascript - 如何引用原型(prototype)中定义的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24772060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com