我正在尝试使用jquery切换时使用replace命令更改图像。基本显示向下的箭头,在内容显示后成为向上箭头。以下代码有效,但向下箭头不会被替换。
<img src="/images/arrow_down.png" id="#1" class="nav-toggle">
<div id="1" style="display:none">some content</div>
这里是jquery代码
jQuery('document').ready(function($) {
jQuery('.nav-toggle').click(function() {
var collapse_content_selector = $(this).attr('id');
var toggle_switch = $(this);
$(collapse_content_selector).toggle(function() {
if ($(this).css('display') == 'none') {
} else {
toggle_switch.attr("src").replace("down", "up");
}
});
});
});
答案 0 :(得分:2)
您没有将其分配回src,请尝试:
toggle_switch.attr("src", toggle_switch.attr("src").replace("down", "up"));
答案 1 :(得分:2)
更少的代码更好。
HTML
<a href="#" id="#arrow-toggle">
<img src="/images/arrow_down.png">
<img src="/images/arrow_up.png" class="up" style="display: none;">
</a>
<div id="content" style="display:none">some content</div>
的jQuery
(function($) {
$('#arrow-toggle').click(function(event) {
event.preventDefault();
$('img:visible', this).hide().siblings().show();
$('#content').toggle($('img:visible').is('.up'));
});
})(jQuery);
答案 2 :(得分:1)
你应该使用类似的东西;
jQuery('.nav-toggle').click(function() {
var collapse_content_selector = $(this).attr('id');
var toggle_switch = $(this);
$(collapse_content_selector).toggle(function() {
if ($(this).css('display') == 'none') {
toggle_switch.attr("src", toggle_switch.attr("src").replace("image_2.jpg", "image_1.jpg"));
} else {
toggle_switch.attr("src", toggle_switch.attr("src").replace("image_1.jpg", "image_2.jpg"));
}
});
});
Here 是一个现场演示。
答案 3 :(得分:0)
我认为你应该尝试jQuery.UI.toggleSwitch()
答案 4 :(得分:0)
HTML
<img src="/images/arrow_down.png" id="#1" class="nav-toggle">
<div id="1" style="display:none">some content</div>
的jQuery
$(function(){
$('.nav-toggle').on('click', function(){
var t = $(this);
var imgSrc = t.attr('src');
var divId = t.attr('id');
$(divId).toggle('slow', function() {
if (imgSrc === '/images/arrow_down.png') {
t.attr({'src' : '/images/arrow_up.png'});
} else {
t.attr({'src' :'/images/arrow_down.png'});
}
});
});
});
试试这个
答案 5 :(得分:0)
$("div#id").slideToggle(function() {
if ($(this).css('display') == 'none') {
$("div#id").css({'background-image':'url(css/img/nav_plus.gif)'});
} else {
$("div#id").css({'background-image':'url(css/img/nav_minus.gif)'});
}
});
另一个简单的解决方案可能可以帮助某人;)