2011-08-03 7 views
0

のいくつかのaspボタンにCSSクラスを追加していて、そのクラスをmouseleaveで削除していますが、私はマウスクラスに追加したクラスが新しいクラスの効果をまだ見ていません。私はpagerbtnMouseEnterクラスを削除するとbuttonclassを添付したいマウスの休暇にjqueryでcssクラスを削除するには?

<script src="jquery-1.6.2.js" type="text/javascript"></script> 
    <script type="text/javascript"> 

     $(document).ready(function() { 

      // mouse hover 
      $("[id^='MangoPager_btn']").mouseenter(mouseenterfunction); 
      // mouse leave 
      $("[id^='MangoPager_btn']").mouseleave(mouseleavefunction); 

     }); 

     function mouseleavefunction() { 

      $(this).removeClass("pagerbtnHover"); 
      $(this).addClass("buttonclass");  } 

     function mouseenterfunction() { 

      $(this).addClass("pagerbtnMouseEnter"); 
     } 

    </script> 

は、私のような何かをしてmを。あなたが追加されている同じクラスを削除していない

+0

私はさておき、あなたが連鎖機能はjQueryのオブジェクトへの呼び出しができ、この方法は、あなたが同じオブジェクトを複数回初期化を回避することができますとして、あなたが別のクラス – Pratik

+1

を追加するとき、それが上書きされると思います。例えば。 '$(this).removeClass(...)。addClass(...)'。 –

答えて

1

あなたが削除しているよりも、あなたは別のクラスを追加している:

$(this).addClass("pagerbtnMouseEnter"); 

// should be $(this).removeClass('pagerbtnMouseEnter'); 
$(this).removeClass("pagerbtnHover"); 

を両方のクラス名が一致していることを確認し、あなたが持っているべきではありません問題。

別のノートで

、あなたがhover()を使用してビットをあなたのJavaScriptをクリーンアップする可能性があり、$(document).ready()の使用を取り払う:

$(function(){ 
    $("[id^='MangoPager_btn']").hover(function(){ 
     $(this).toggleClass('pagerbtnMouseEnter'); 
    }); 
); 
3

...

$(this).addClass("pagerbtnMouseEnter"); 
$(this).removeClass("pagerbtnHover"); 
+0

ありがとうジョン・グラントそれは私の愚かな間違いだった私はちょうどクラス名を変更し、関数で更新されていない...ありがとう.. –

1

$(この).removeClass( "pagerbtnHover");

$(this).addClass( "pagerbtnMouseEnter");

間違ったクラスを削除する....

1

さらに簡単:単一の引数、および.toggleClass().hover()を使用しています。

$(function() 
{ 
    $("[id^='MangoPager_btn']").hover(function() 
    { 
     $(this).toggleClass('pagerbtnMouseEnter'); 
    }); 
}); 
0

私はあなたがすべてのボタンは、すべての回でbuttonclassクラスを持って、ボタンクラスで必要なスタイルを上書きpagerBtnHover持たせることをお勧めします。 pagerbtnMouseEnterクラスを削除します。次に、あなたはすることができます:

function mouseleavefunction() { 
    $(this).removeClass("pagerbtnHover"); 
} 

function mouseenterfunction() { 
    $(this).addClass("pagerbtnHover"); 
} 
0

二重、jQueryのセレクタを呼び出す必要はありません。

$(this).removeClass('pagerbtnMouseEnter').addClass("buttonclass"); 

また、あなたが使用したい場合は、変数に検索された要素は、それが代わりに何度も何度もそれを見つけるために、同じjQueryの関数を呼び出すので、他のsomwhereことを守らなければなりません。

var $this = $(this); 

// Use $this from here on... 
関連する問題