JavaScript - 多参数函数,它是多个图像库的字符串
JavaScript - multiple argument function, which is a string for multiple image gallery
我有这样的函数,可以通过他的ID启用图库:
document.getElementById('galleryID').onclick = function (event) {
event = event || window.event;
var target = event.target || event.srcElement,
link = target.src ? target.parentNode : target,
options = {index: link, event: event},
links = this.getElementsByTagName('a');
bg.Gallery(links, options);
};
但问题是当我在一个文档中有多个画廊时:
id="gallery01"
, id="gallery02"
, id="gallery03"
...最多 id="gallery11"
.
现在我用不同的 ID 多次播放图库脚本的代码 11 次:
document.getElementById('gallery01').onclick = function (event) { ...
document.getElementById('gallery02').onclick = function (event) { ...
document.getElementById('gallery03').onclick = function (event) { ...
为止。。。
document.getElementById('gallery11').onclick = function (event) { ...
我希望有一个JS函数而不是11。我该怎么做?
我想使用正则表达式,但我的组合不起作用。我认为如果可以这样做,那将是非常好的解决方案 - 在'galleryID'
的地方使用调节 exp .
您可以定义常规类型,例如"ui-gallery",并将类添加到要将此事件绑定到的每个元素:
<div id="gallery1" class="ui-gallery"></div>
<script>
// with multiple handlers for different gallery elements
var handlersPool = {
"default" => function(event) { ... },
"gallery1" => function(event) { ... },
"gallery2" => function(event) { ... },
...
}
var uiGalleries = document.getElementsByClassName("ui-gallery");
for (i = 0; i < uiGalleries.length; i++) {
var el = uiGalleries[i];
el.onclick = handlersPool[el.id] || handlersPool.default;
}
</script>
我有两个想法:首先,您可以添加类并使用类似
getElementsByClassName('gallery').forEach(function(galery){
gallery.function (event) { ...
})
或者用你想要使用和用于每个喜欢的所有 id 制作数组
['id1','id2','id3'....].forEach(idName=>{
document.getElementById(idName).onclick = function (event) { ...
})
编辑:
也许你应该检查以下内容:在jQuery选择器上使用正则表达式根据id查找所有元素
尝试像这样使用函数调用添加事件
<div class="gallery" id="gallery1" onclick="getGalleryDetailFor(event)">
<div class="gallery" id="gallery2" onclick="getGalleryDetailFor(event)">
编辑
<script>
function getGalleryDetailFor(event)
{
event = event || window.event;
var target = event.target || event.srcElement,
link = target.src ? target.parentNode : target,
options = {index: link, event: event},
links = this.getElementsByTagName('a');
bg.Gallery(links, options);
}
</script>
新更新
<div class="gallery" id="gallery1" onclick="getGalleryDetailFor('gallery1')">Gallery 1</div>
<div class="gallery" id="gallery2" onclick="getGalleryDetailFor('gallery2')">Gallery 2</div>
JavaScript
function getGalleryDetailFor(ids)
{
document.getElementById(ids).addEventListener('click',function (event)
{
event = event || window.event;
var target = event.target || event.srcElement,
link = target.src ? target.parentNode : target,
options = {index: link, event: event},
links = this.getElementsByTagName('a');
bg.Gallery(links, options);
});
}
- 在字符串中查找所有图像 src URL 并存储在数组中
- 如何从 javascript 中可能具有一个或多个图像的字符串中仅获取图像名称
- JavaScript - 多参数函数,它是多个图像库的字符串
- 使用 javascript 压缩包含嵌入图像的 HTML 字符串
- 使用同位素插件,我可以按字符串名称过滤并使图像重叠吗?
- 如何将任意数量的图像动态添加到源字符串位于数据库中的 Web 窗体
- 在jQuery中更新base64图像字符串时未进行图像刷新
- base64字符串使用Node.JS被写为无效图像
- 如何使用javascript将图像转换为字符串
- 将fadeIn效果添加到图像容器超链接附加字符串中
- 使用DataURL字符串将图像上载到picasa
- 图像大小与其base64字符串转换长度之间的比率是多少
- 如何在图像源中使用字符串代替url
- 保存Canvas图像(将数据字符串发布到PHP)
- Phonegap - 如何从base64字符串生成图像文件
- 从本地存储 base64 字符串设置背景图像
- 将图像字符串转换为文件
- PHP base64解码函数无法解码base64图像字符串
- 通过JS解码UTF-8图像(字符串)
- javascript中有效的base64图像字符串出现DOM异常5无效字符错误