JQuery toggle()函数

时间:2012-03-20 10:24:03

标签: jquery

我有一个问题,当我点击链接p打开,然后我点击其他链接它不起作用。当我再次点击时它会起作用。

这是我的jQuery代码:

var toggle = 0;
$(document).ready(function () {
    $(".feedback_block").each(function () {
        $("a", this).click(function (e) {
            if (toggle == 0) {
                $(this).parent().children("p").stop(true, true).fadeIn(500);
                $(this).addClass("clicked");
                $(this).children().addClass("clicked_span");
                toggle = 1;
                console.log(toggle);
            } else
            if (toggle == 1) {
                $(this).parent().children("p").stop(true, true).fadeOut(500);
                $(this).removeClass("clicked");
                $(this).children().removeClass("clicked_span");
                toggle = 0;
                console.log(toggle);

            }
            e.stopPropagation();
            return false;
        });
        toggle = 0;
    });
});

当我点击参数切换get 1时,当我点击另一个链接时,初始值应为0.我该怎么办?

我的例子:http://jsfiddle.net/amkrtchyan/tjzaR/

2 个答案:

答案 0 :(得分:1)

你可以简单地使用toggle()(http://jsfiddle.net/tjzaR/2/)

$(document).ready(function () {
    $(".feedback_block").each(function () {
        $("a", this).toggle(function (e) {

                $(this).parent().children("p").stop(true, true).fadeIn(500);
                $(this).addClass("clicked");
                $(this).children().addClass("clicked_span");

            }, function(){
                $(this).parent().children("p").stop(true, true).fadeOut(500);
                $(this).removeClass("clicked");
                $(this).children().removeClass("clicked_span");


            });
    });
});

或者你可以做(​​在这里弄曲http://jsfiddle.net/tjzaR/1/

$(".feedback_block").each(function () {
    $("a", this).click(function (e) {
        if (!$(this).parent().children("p").is(":visible")){
            $(this).parent().children("p").stop(true, true).fadeIn(500);
            $(this).addClass("clicked");
            $(this).children().addClass("clicked_span");

        } else{
            $(this).parent().children("p").stop(true, true).fadeOut(500);
            $(this).removeClass("clicked");
            $(this).children().removeClass("clicked_span");


        }
        return false;
    });

});

答案 1 :(得分:0)

 $("a", this).toggle(function () {

                $(this).parent().children("p").stop(true, true).fadeIn(500);
                $(this).addClass("clicked");
                $(this).children().addClass("clicked_span");
                return false; 

            }, function(){

                $(this).parent().children("p").stop(true, true).fadeOut(500);
                $(this).removeClass("clicked");
                $(this).children().removeClass("clicked_span");
                return false;

            });

我们不能直接使用切换功能。 Toggle