2012-04-20 7 views
0

あるクラスが-200pxのmarginTopを持つという条件の下で別のクラスがクリックされたときに、あるクラスをトリガーするif elseステートメントを作成しようとしています。jQuery別のクラスがクリックされたときに1つのクラスを切り替える

声明場合、私はこれを使用してみましたが、それは動作しません:

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

任意の提案を?あなたはクリックイベントを呼び出している

答えて

2

はjQueryを使って適切なifelseの例でjsfiddleを作りました。 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 

    } 

});​ 
+1

jsfiddleへのリンクだけでなく、この回答に関連するコードを追加してください。 – Gabe

1

、私はあなたが単にあなたの表現を手直しする必要があるようですね

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

...あなたはクリックイベントにイベントを追加したいと思います。問題は、イベントハンドラをアタッチするだけで、要素がクリックされたかどうかを確認しようとしていることです。

$('.loginTrigger').click(function() 
{ 
    if('.register').css('marginTop') === '-200px') 
    { 
     // Do Stuff 
    } 
}); 
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'}); 
      } 
     ); 
    } 
}) 
0
$('.logintrigger').on('click', function(){ 

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

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

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

     }); 

    } 

}); 
関連する問題