到目前为止我的jQuery:
jQuery(document).ready(function($) {
$(".spoiler").hide();
$(".spoiler-title").prepend('+ ');
$('.spoiler-title').bind('click', function(){
$(".spoiler-title").prepend('- ');
$('.spoiler').animate({height: 'toggle'}, 100);
});
});
显然这是错误的,因为每次你点击它只是添加' - '并且它不会删除旧的'+'前置。那么你将如何删除新的前置并将其恢复为原来的“+”?
感谢您的帮助!
答案 0 :(得分:1)
试试这个:
jQuery(document).ready(function($) {
$(".spoiler").hide();
$(".spoiler-title").prepend('<span class="prependedSign plus">+ </span>');
$('.spoiler-title').bind('click', function(){
if($(".prependedSign").hasClass("minus"))
{
$(".prependedSign").remove();
$(".spoiler-title").prepend('<span class="prependedSign plus">+ </span>');
}
else
{
$(".prependedSign").remove();
$(".spoiler-title").prepend('<span class="prependedSign minus">- </span>');
}
$('.spoiler').animate({height: 'toggle'}, 100);
});
});
答案 1 :(得分:1)
P你可以继续使用前置,但由于该跨度的内容将是+或a - ,你可以使用类似$('.spoiler-title span').text('+ ');
的东西,而不是用.text(' - ')来改变它。
请考虑此代码并根据需要进行更改:
(function($){ $(function(){
$('.spoiler-title').click(function(){
$(this).toggleClass('minus').next('.content').slideToggle();
if($(this).hasClass('minus')){
$(this).children().text('- ');
} else { $(this).children().text('+ '); }
});
}); })(jQuery);
我不知道你有什么,但这里是working fiddle,所以你可以看到我是怎么做到的。希望这对你有用!另请注意,我没有使用$(document).ready()。此更改对代码没有影响,但它将以相同的方式工作,并且它“无冲突”,因此请改为开始使用它。还有其他方法可以避免“$”冲突,但这是我个人使用的。
答案 2 :(得分:0)
试试这个
jQuery(document).ready(function($) {
$(".spoiler-title").text('+ ');
$(".spoiler").hide();
$('.spoiler-title').bind('click', function(){
if($(this).text().indexOf("- ") > -1)
{
$(this).text('+ ');
$(".spoiler").hide();
}
else
{
$(this).text('- ');
$(".spoiler").animate({height: 'toggle'}, 100);
}
});
});