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 に答える