gpt4 book ai didi

javascript - 如何在 jQuery 中制作图像链接列表?

转载 作者:行者123 更新时间:2023-11-29 22:12:46 24 4
gpt4 key购买 nike

我有一个链接列表。我想做的是用 jQuery 为每个链接附加一个函数;单击链接时,该函数将运行,并将一对图像加载到一个 div 中(img id 为“img1”和“img2”)。每个链接都有“链接”类,并将加载一对不同的图像。因此,第一个链接将加载 Image 1A 和 Image 1B,第二个链接将加载 Image 2A 和 2B,依此类推。我有两个数组中的图像。

但是,它没有像我想要的那样附加调用,而是在页面停止加载后加载数组的最后两个图像。更重要的是,点击链接没有任何作用!

var loadImages =
{
init: function()
{
var links = $( ".link" );
myArray1 = [
"imgs/png/image1.png",
"imgs/png/image2.png",
"imgs/png/image3.png",
];
myArray2 = [
"imgs/jpg/image1.jpg",
"imgs/jpg/image2.jpg",
"imgs/jpg/image3.jpg",
];
for ( var i = 0, ii = links.length; i < ii; i++ )
{
$( links[ i ] ).bind( "click", loadImages.imgLoader( myArray1[ i ],
myArray2[ i ] ) );
}
},
imgLoader: function( firstURI, secondURI )
{
document.getElementById( "img1" ).src = firstURI;
document.getElementById( "img2" ).src = secondURI;
}
};
loadImages.init();

最佳答案

您没有绑定(bind)回调函数。您执行 loadImages.imgLoader 并传递结果。

通常你可以只绑定(bind)一个回调函数,但由于你在回调本身中使用了一个计数器变量,你需要警惕 i 的范围:

$(links[i]).on("click", (function(j) {
return function() {
loadImages.imgLoader(myArray1[j], myArray2[j]);
}
})(i));

更好的方法是将事件处理程序同时绑定(bind)到所有链接,并在没有 for 循环的情况下处理图像交换:

$('.link').click(function() {
var index = $(this).index();

$('#img1').prop('src', myArray1[index]);
$('#img2').prop('src', myArray2[index]);
});

关于javascript - 如何在 jQuery 中制作图像链接列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17180623/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com