jQuery:对于类似的操作,使用单个函数而不是重复的函数
jQuery: use a single function instead of repeated functions for similar operations
目前我使用的是fancybox来显示iframe:
$('#img-001').click(function() {
$.fancybox({
type: 'iframe',
href: 'doc-001.html',
showCloseButton: true
});
});
$('#img-002').click(function() {
$.fancybox({
type: 'iframe',
href: 'doc-002.html',
showCloseButton: true
});
});
然而,这样做是乏味的,需要一遍又一遍地复制相同的代码。是否存在允许使用单个函数的替代方法?这样的操作将取#img-ID
,将href
变为doc-ID.html
。或者,如何使用类(每个元素仍然需要一个特定的链接)来做到这一点?
这可能吗?
这里最简单的解决方法是
$('[id^="img-"]').click(function() { // select all elements whose id starts with "img-"
$.fancybox({
type: 'iframe',
href: 'doc'+this.id.slice(3)+'.html', // takes the "-007" part of "img-007"
showCloseButton: true
});
});
$('#img-001, #img-002').click(function() {
var code = this.id.replace('img', '');
$.fancybox({
type: 'iframe',
href: 'doc' + code + '.html',
showCloseButton: true
});
});
$('#img-001,#img-002').click(function() {
$.fancybox({
type: 'iframe',
href: 'doc-'+this.id.split['-'][1]+'.html',
showCloseButton: true
});
});
这是我在发布后几分钟想到的(mask
是所有元素共享的类):
$('div.mask').click(function() {
var id = $(this).attr('id');
var documentLink = "work-" + id.split("-")[1] + ".html";
$.fancybox({
type: 'iframe',
href: documentLink,
showCloseButton: true
})
}
);
然而,我想知道是否有更好的方法来处理documentLink
。
这将指导你:
function magic(){
m = $(this).attr("id").match(/.*-(.*)/)
$.fancybox({
type: 'iframe',
href: 'doc-'+m[1]+'.html',
showCloseButton: true
});
}
并应用于所有图像或任何你想要的选择器:
$("body").find("img").each(magic);
相关文章:
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- 用于多个类事件Jquery的单个函数
- Javascript:只有在代码中使用单个实例时,函数才能正常工作
- 使用JavaScript&jQuery在单个函数(Nodes&Stuff)中
- 仅在单个页面中运行字符计数javascript函数
- 嵌套描述函数中对象的单个mock(jasmine
- 如何编写单个 Jquery 函数以在文档更改和就绪事件时触发
- 以单个类函数而不是整个类组为目标
- 如何在追加函数创建后最小化单个框
- jQuery单个脚本文件不是特定于*this*页面-显示“;undefined不是函数”;
- 是否可以使用ajax加载单个php函数
- DOM渲染是否保证在单个(同步)函数期间阻止'执行
- 多个按钮触发单个jQuery函数
- 如何使用angularjs在单个ng-init-directice中调用多个函数
- java脚本中用于多个控件的单个onchange函数
- 在nodejs中,如何使模块的单个实例具有不同参数的构造函数
- jQuery:单个更改事件以触发多个函数不起作用
- 如何将动态追加元素的多个值存储到单个 var 中,然后检索到函数中
- 多个事件,用于触发 Chrome 书签 API 中的单个函数
- Javascript 使用单个函数从另一段代码中取消 POST