当单击另一个类时,jQuery切换一个类

时间:2012-04-20 18:22:16

标签: javascript jquery css

我正在尝试编写一个if else语句来触发一个类,当一个类的marginTop为-200px时,单击另一个类。

我尝试使用这个if语句,但它不起作用:

    if ($('.logintrigger').click() && $('.register').css('marginTop') === '-200px') {
        $('.registertrigger').toggle(
            function () {$('.register').stop().animate({'marginTop':'-0px'},200); $('#opencloseregister').css({'backgroundPosition':'-20px 0px'});}
        );
    }

任何建议???

5 个答案:

答案 0 :(得分:2)

听起来你只需要重写你的表达。问题是,当你应该只附加一个事件处理程序时,你正试图查看一个元素是否被“点击”。

$('.loginTrigger').click(function()
{
    if('.register').css('marginTop') === '-200px')
    {
        // Do Stuff
    }
});

答案 1 :(得分:2)

使用jquery制作一个jsfiddle,其中包含一个正确的ifelse示例。 http://jsfiddle.net/RQ75m/

$(".logintrigger").click(function(){

    if( $(".register").css("margin-top") == "200px" ){

       $(".registertrigger").show(); //toggle function here
       return false; //so that the page doesn't refresh

    } else {

       $(".registertrigger").hide();
       return false; //so that the page doesn't refresh

    }

});​

答案 2 :(得分:1)

您正在调用click事件,我想您想要在click事件中添加一个事件......

$('.logintrigger').click( function(e){
  if($('.register').css('marginTop') === '-200px'){
    $('.registertrigger').toggle();
  }
});

答案 3 :(得分:1)

当您呼叫$('.logintrigger').click()时,它会触发点击事件。 它应该是:

if ($('.logintrigger').click(function(){
   if ($('.register').css('marginTop') === '-200px') {
        $('.registertrigger').toggle(
            function () {
               $('.register').stop().animate({'marginTop':'-0px'},200);
               $('#opencloseregister').css({'backgroundPosition':'-20px 0px'});
            }
        );
    }
})

答案 4 :(得分:0)

$('.logintrigger').on('click', function(){

    if($('.register').css('marginTop')==='200px') {

        $('.registertrigger').toggle( function () {

            $('.register').stop().animate({'marginTop': 0 },200);
            $('#opencloseregister').css({'backgroundPosition':'-20px 0px'});

        });

    }

});