2016-09-14 7 views
1

クラスupを最初にクリックし、2番目のクリックでクラスdownを追加し、3回クリックするとすべてのクラスが削除されます。クリックしてクラスを変更する

これは私のコードですが、クラスがそれぞれ順番に適用されていません。

function initAdClass() { 
    var trigger = '.post-info h2'; 
    jQuery(trigger).click(function(e) { 
     if (jQuery(this).not('.up') && jQuery(this).not('.down')) { 
      jQuery(this).addClass('up'); 
     } 
     else if (jQuery(this).is('.up') && jQuery(this).not('.down')) { 
      jQuery(this).removeClass('up').addClass('down'); 
     } 
     else if (jQuery(this).not('.up') && jQuery(this).is('.down')) { 
      jQuery(this).removeClass('down'); 
     }   
    }); 
} 
+1

のtry変更 '' hasClass' –

+0

@Shahnawaハリドは、あなたが私の答えを試しましたか? –

答えて

1

はこのスニペットを試してみてください。 not`

var clicks=0; 
 
$('a').click(function(){ 
 
    
 
    clicks = !isNaN($(this).attr('id')) ? $(this).attr('id') + 1 : 0; 
 
    if(clicks == 1) 
 
    { 
 
    $(this).addClass('Up').html('Up added'); 
 
    } 
 
    if(clicks == 2) 
 
    { 
 
    $(this).removeClass('Up').addClass('Down').html('Up removed and Down Added'); 
 
    } 
 
    if(clicks == 3) 
 
    { 
 
    $(this).removeClass().html('All removed'); 
 
    clicks=0; 
 
    } 
 
    $(this).attr('id', clicks); 
 
    $(this).append(" " + clicks); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a href="javascript:void(0)">Trigger : 1 : </a> 
 

 
<br/><br/> 
 

 
<a href="javascript:void(0)">Trigger : 2 : </a> 
 

 
<br/><br/> 
 

 
<a href="javascript:void(0)">Trigger : 3 : </a>

+0

それは問題なく動作していますが、2つ以上のトリガーが連続している場合はバグがあり、他のトリガーからクラスを削除し、「この」トリガーにクラスを追加する必要があります。クリックトリガに応じて 現在、クリックの数はジェネリックトリガーに基づいており、トリガーを2つ追加するとカウントエラーが表示されます。 –

+0

@ShahnawazKhalidあなたが達成しようとしていることをあなたのHTMLに見せてください。 –

+0

@ShahnawazKhalid私は自分の答えを編集しました。これはあなたが探しているものですか? –

関連する問題