0

我的代码的初始部分正在工作。它加载-标志,然后+在单击时更改为标志。或者,如果需要,它可以加载多个+标志。无论哪种方式,第一次初始加载都很好。问题出在点击事件上。它根本行不通。

$(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/

4

1 回答 1

1
if ($(".section-icon:contains('-')")) {

总是评估为true,您可以使用length属性:

if ($(".section-icon:contains('-')").length) {

http://jsfiddle.net/f2GZG/

您也可以使用text方法而不是使用:contains选择器:

$('.section-icon').text(function(i, cur){
   return cur === '+' ? '-' : '+'
}) 

http://jsfiddle.net/UaGrt/

于 2012-10-04T21:16:20.513 回答