通过多个链接 JQuery 交换页面上的所有图像
好的,到目前为止我已经做到了,它在一定程度上有效,
$('a').click(function(e)
{
e.preventDefault();
var preFix = $(this).attr("href");
$('img.swap').each(
function() { this.src = this.src.replace('.gif', (preFix)+'.gif');
});
});
这会拉出“HREF”链接并将其添加到图像的末尾。问题是,当我单击第一个链接时,它会很好地交换图像,但第二次单击 5 个链接中的一个时,图像会损坏。
我猜测是因为它只是在第一个前缀的末尾添加了第二个前缀。我尝试了一些事情,但最终却破坏了整个事情。
我需要它做两件事:
1)当您单击一个链接然后单击另一个链接时,我想删除旧的前缀和新的前缀。
2)如果同一个链接被单击两次,我需要它首先添加前缀,然后删除前缀。
非常感谢
Ok I have this so far and it works to an extent,
$('a').click(function(e)
{
e.preventDefault();
var preFix = $(this).attr("href");
$('img.swap').each(
function() { this.src = this.src.replace('.gif', (preFix)+'.gif');
});
});
This pulls through the 'HREF' link and adds it to the end of the image. The problem is when I click the first link it swaps the images just fine but the second time I click one of the 5 links the image breaks.
I'm guessing its because it is just adding the 2nd prefix at the end of the first. I have tried a few things but it just ends up breakin the whole thing.
There are two things i need it to do:
1) When you click one link then another I want to to remove the old prefix and tthe new one.
2) If the same link is clicked twice I need it to firstly add the prefix then just remove the prefix.
Many Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
试试这个: :-D
$(this).data(..)
在特定的 DOM 元素中存储一个变量,然后你可以执行布尔操作来对照你拥有的值来检查它: -)这里有更多解释:
jQuery.data()
UPDATE
而不是使用 a (锚)标记使用其他带有类名的东西,如 .changeIMG:
并且使用 css 它可以看起来像锚标记:
然后上面的代码中有 2 个更改:
$('a').click(function(e ){
变为$('span.changeIMG').click(function(e){
和
var preFix = $(this).attr("href");
变为var preFix = $(this).attr("postfix");
Try this: :-D
$(this).data(..)
stores a variable in that specific DOM element, than after doing that you can do boolean operations to chack it against the value you have :-)It is more explained here:
jQuery.data()
UPDATE
and instead of using an a (anchor) tag use something else with a className like .changeIMG:
and with css it can look like an anchor tag:
and then there is 2 changes in the code above:
$('a').click(function(e){
become$('span.changeIMG').click(function(e){
and
var preFix = $(this).attr("href");
becomevar preFix = $(this).attr("postfix");