Jquery图像交换导航问题

Jquery图像交换导航问题,jquery,image,onclick,Jquery,Image,Onclick,有人能告诉我我做错了什么吗 <script type="text/javascript"> (document).ready(function() { $j("img.sswap").click(function() { $j("img.sswap").each(function() { this.src = this.src.replace("_on", "_off"); }); this.src = this.src.

有人能告诉我我做错了什么吗

<script type="text/javascript">
(document).ready(function() {

$j("img.sswap").click(function() {
      $j("img.sswap").each(function() {
            this.src = this.src.replace("_on", "_off");
      });
      this.src = this.src.replace("_on", "_off");
});

});
</script>

<div id="navigation">
<ul>
<li><a href="#d1"><img class="sswap" src="img/d1_off.png"></a></li>
<li><a href="#d2"><img class="sswap" src="img/d2_off.png"></a></li>
<li><a href="#d3"><img class="sswap" src="img/d3_off.png"></a></li>
<li><a href="#d4"><img class="sswap" src="img/d4_off.png"></a></li>
</ul>
</div>

(文档).就绪(函数(){
$j(“img.sswap”)。单击(函数(){
$j(“img.sswap”)。每个(函数(){
this.src=this.src.replace(“_on”、“_off”);
});
this.src=this.src.replace(“_on”、“_off”);
});
});

在不知道您实际希望发生什么的情况下,此代码似乎会交换除单击的图像之外的所有图像。首先,循环所有与绑定匹配的选择器,并交换它。然后重新交换单击的一个,将其恢复为原始状态

我不敢相信这就是你真正想要发生的,也许你应该删除
每个
循环。

这样就可以了

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<div id="navigation">
<ul>
<li><a href="#d1"><img class="sswap" src="img/d1_off.png"></a></li>
<li><a href="#d2"><img class="sswap" src="img/d2_off.png"></a></li>
<li><a href="#d3"><img class="sswap" src="img/d3_off.png"></a></li>
<li><a href="#d4"><img class="sswap" src="img/d4_off.png"></a></li>
</ul>
</div>
<script type="text/javascript">

$(function() {
    $("img.sswap").toggle(
        function() { 
        var src = $(this).attr("src").replace("_off", "_on");
        $(this).attr("src", src);
    },
    function() {
        var src = $(this).attr("src").replace("_on", "_off");
        $(this).attr("src", src);
    });
});
</script>

$(函数(){ $(“img.sswap”).toggle( 函数(){ var src=$(this.attr(“src”).replace(“'u off'”,“'u on”); $(this.attr(“src”,src); }, 函数(){ var src=$(this.attr(“src”).replace(“'u on'”和“'u off”); $(this.attr(“src”,src); }); });
如果您只想切换单个图像的开/关状态,那么Alfie-101的答案将适用于您。但是,从阅读代码来看,您一次可能只希望“打开”一个图像。似乎您正在尝试“关闭”所有图像,然后“打开”单击的图像。代码中最大的问题是,最后一行应该将“关闭”替换为“打开”,而不是将“打开”替换为“关闭”。因此,如果希望所有图像都处于“关闭”状态,请将代码更改为以下内容:

$(document).ready(function() {
    $("img.sswap").click(function() {
        $("img.sswap").each(function() {
            this.src = this.src.replace("_on", "_off");
        });
        this.src = this.src.replace("_off", "_on");
    });
});

使用JSFIDLE:

您没有解释您的问题运行此程序时会发生什么?顺便说一句,请更正代码的第二行。应该是jQuery(document)。ready(…就解析错误而言,它似乎可以工作(获取正确的jQuery符号($)有一些问题),否则它似乎会起作用..不太确定你想要完成什么很难。谢谢,这正是我需要做的,但它不起作用,我得到了错误的“对象预期线2”,图像没有改变。不!我没有看到它,但我知道它起作用了!!!哈利路亚哈哈,非常感谢你:)所以问题是$(window.load(function(){而不是$(document.load(function(){?所以我为其他像我这样的人发布了你的答案:@mark:Nice.如果它对你有用,别忘了点击这个问题左边的小复选标记:-)$(window.load(function(){$(.img.sswap”)。点击(function(){$(.img.sswap”)。每个(function(){this.src=this.src.replace(“_-on”,“_-off”);});this.src=this.src.replace(“_-off”,“_-on”);})
  • 不,运气不好。在ie和mozilla中试用过。啊!为什么这么难?我只想交换和映像,并在选中时保留它。这有用吗?您是否将此
    包含在