我正在尝试向使用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
我尝试在return this;
的末尾添加myx = jQuery('div.carousel').scrollGallery({
,但它仍会返回jQuery对象。
我也试过
jQuery.scrollGallery().numSlide(2); //error undefined is not a function
jQuery.scrollGallery.numSlide(2); //same error
我是否需要添加 LIGHT BULB
// 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);
如果将来有人有类似的容易上当的情况,我决定在案件中发布。
答案 0 :(得分:0)
执行此操作的一种方法是首先启动 ScrollGallery 对象,然后再使用它。
var test = new ScrollGallery();
test.numSlide();
如果你想扩展jQuery并使用你可以按如下方式分配它的功能
$.fn.scrollGallery = new ScrollGallery();
并使用它
$("window").scrollGallery.numSlide();