jQuery OOP元素参数
jQuery OOP element parameters
我想使用oop创建一个jquery滑块。这是我的代码结构:
var photoGallery = new Slider();
function Slider(){ this.init(); }
Slider.prototype = {
el : {
nav : $('.slideshowNav', this.main),
navItems : $('.items', this.nav),
main : $('.slideshow')
}
,init: function(){
// some code here
}//init
// rest of functions here
}
我的问题是,我有两个<div class="slideshow">
在同一页,我的代码是错误的,根据这种情况。
我知道我可以传递一个参数给init()
,我所有的问题都会飞走,但我在其他函数中也使用this.el
元素,所以这不是一个解决方案。
我想知道如何从Slider()
参数中添加另一个元素到this.el
(我知道,现在没有参数)
或者,有没有人能告诉我怎样才能使这个结构看起来像
$('.slideshow').each(...)
?
我需要我的代码工作与多个元素在一个单一的页面
有多少个jquery插件开始:
$.fn.myplugin = function(opts) {
// Let each closure has its own options
var myplugin = new Myplugin(opts);
return this.each(myplugin);
};
function Myplugin(opts) {}
这样,人们可以像这样调用你的代码:
$('.slideshow').myplugin();
每个元素将被单独处理。this.el
将能够在每个实例中轻松调用,没有问题。
您可以尝试这样做(未经测试):
var galleries = [];
$('.slideshow').each(function(index, elem) {
galleries.push(new Slider(elem));
});
然后改变你的Slider
实现如下:
function Slider(elem) {
this.elem = elem;
this.init();
}
Slider.prototype = {
el : {
nav : $('.slideshowNav', this.main),
navItems : $('.items', this.nav),
main : $('.slideshow')
}
,init: function() {
// some code here
}//init
// rest of functions here
}
这种方法的新情况是,您可以在Slider
实例中引用this.elem
。您将不得不调整一些代码以引用Slider
原型中的this.elem
来工作,但这应该让您开始。
相关文章:
- Webdriver.io pageObject模式-通过传递参数来定义元素选择器
- 如何在HTML元素上创建函数,而不是将元素作为参数传递
- 如何传递元素's ID作为使用getElementById的函数的参数
- 在动态创建的元素中包含参数的事件处理程序
- 是否可以将一个元素还原为它's上一个位置,而不将该位置作为参数传递
- Javascript-函数获取数组元素参数未定义/为null
- td元素中带有传递参数的Javascript函数
- 如何从输入元素传递参数
- 可以't获取此函数以删除基于javaScript中后续参数的特定元素
- 元素id未被接受为函数参数
- 基于参数(angular)调用特定元素上的ng show
- 隐藏JavaScript函数中作为参数传递的元素的父元素
- 使用字符串方法更改Javascript对象中的DOM元素参数
- 无法让悬停事件使用 jQuery UI 持续时间参数或 CSS 处理目标元素的同级元素
- 如何选择使用Jquery作为参数传入的DOM元素
- 删除元素并将其添加到 javascript 中的函数参数列表中
- 使用基于查询字符串参数的 Angular 填充选择元素
- 使 HTML 元素可见/不可见取决于 HttpServletRequest 参数
- 数组元素作为 getElementById().check 的参数
- 从带有字符串参数的函数中的元素中获取值