我的代码的初始部分正在运行。它会加载-
符号,然后在点击时更改为+
符号。或者,如果需要,它可以加载多个+
符号。无论哪种方式,第一次初始加载都很好。问题出在click事件上。它根本不起作用。
$(document).ready(function() {
if ($('.user-email').length == 1) {
$('.user-email .section-icon').toggleClass('open');
$('.section-icon').text('-');
} else if ($('.user-email').length > 1) {
$('.section-icon').text('+');
}
$('.user-email-text').click(function(event) {
event.preventDefault();
if ($(".section-icon:contains('-')")) {
$('.section-icon').text('+');
} else if ($(".section-icon:contains('+')")) {
$('.section-icon').text('-');
}
$(this).parent().next().toggle();
$(this).siblings('.section-icon').toggleClass('open');
return false;
});
});
我的小提琴在这里http://jsfiddle.net/6QW2K/
答案 0 :(得分:1)
if ($(".section-icon:contains('-')")) {
始终评估为true
,您可以使用length
属性:
if ($(".section-icon:contains('-')").length) {
您也可以使用text
方法,而不是使用:contains
选择器:
$('.section-icon').text(function(i, cur){
return cur === '+' ? '-' : '+'
})