正在从列表元素中创建javascript对象
Creating javascript objects out of list elements
我在无序列表中创建列表项之外的对象时遇到了一个小问题。我正在创建一个库,我需要每个库缩略图都是它自己的对象,所以我使用jQuery的$.each()迭代每个列表项
问题是我不知道如何给每个对象/li它自己的实例名称。
这是代码:
function galleryButton(){
this.link
this.name
this.image
this.identifier,
this.goPage = function(){
$('.container').animate({opacity : '0'}, 500).load(this.link + ' .galContainer', function(){$('.container').animate({opacity : '1'})});
return false;
}
}
$(document).ready(function(){
$.ajaxSetup({
cache:false
});
$('.gallery li a').each(function(node, value){
this = new galleryButton();
this.link = $(this).attr('href');
this.name = $(this).attr('name');
this.image = $(this + " img").attr('src');
this.identifier = $(this).attr('data-pic-id');
$(this).click(this.goPage);
})
$('.goback').click(function(){
var back = $(this).attr('href');
$('.container').animate({opacity : '0'}, 500).load(back + ' .gallery', function(){$('.container').animate({opacity : '1'})});
return false;
});
});
var myGalleryButton = new galleryButton();
并更新您的作业:
myGalleryButton.link = $(this).attr('href');
/// etc
然后在.each()函数的末尾,将myGalleryButton推送到一个数组/对象,以便稍后访问。
这没有任何意义:
$('.gallery li a').each(function(node, value){
this = new galleryButton();
this.link = $(this).attr('href');
this.name = $(this).attr('name');
this.image = $(this + " img").attr('src');
this.identifier = $(this).attr('data-pic-id');
$(this).click(this.goPage);
});
你不想覆盖this
,你想创建一个新的对象,比如:
var slide = new galleryButton();
slide.link = $(this).attr('href');
slide.name = $(this).attr('name');
slide.image = $(this + " img").attr('src');
slide.identifier = $(this).attr('data-pic-id');
因此,在本例中,slide
是实例名称,但它只存在于每个回调函数的函数范围内。
现在,如果你需要能够访问这些对象,那么你要么需要在函数之外创建变量,要么把它们放在其他可以访问的地方。如果是我,我会把它们存储在data
中,用于li
,比如:
var slide = new galleryButton();
slide.link = $(this).attr('href');
slide.name = $(this).attr('name');
slide.image = $(this + " img").attr('src');
slide.identifier = $(this).attr('data-pic-id');
$(this).closest('li).data('slide', slide);
然后您可以像$(someSelectorToGetTheLI).data('slide')
一样访问它们。
相关文章:
- 使用Web Html表单创建Javascript数组
- 使用私有成员创建JavaScript类
- 为DataTables aoColumnDefs创建JavaScript数组(JSON格式)
- Mediawiki皮肤创建-Javascript don'Don’t get load
- 为自定义网站创建JavaScript搜索框,创建显示搜索结果的弹出窗口
- 为表菜单创建javascript
- 使用jstl c:forEach在迭代jsp bean上创建javascript json对象
- 从字符串创建 JavaScript 函数
- 使用计算名称创建 JavaScript 对象
- 什么是创建 JavaScript 类的适当、现代和跨浏览器安全的方法
- 创建 JavaScript 构造函数时的语法错误
- 使用 C# 中的代码隐藏在单击按钮时创建 Javascript 警报
- php在foreach循环中创建javascript
- 创建javascript模块
- 如何从数组中动态创建javascript变量
- 创建JavaScript库:更改实际图像
- 如何创建javascript执行器,使元素在selenium webdriver中可见
- 如何在我的服务器上创建javascript,该服务器使用该服务器上的后端,并将在另一个网站上使用
- 创建javascript子类型的实例会产生意外行为
- 如何创建javascript顺序动画