2011-11-14 9 views
0

要素が無効になっていない場合にのみ、要素を切り替える必要があります。jquery on toggle()

jQuery("#sbutton").toggle(
    function() { 
     if (!jQuery(\'input[name^="choose"]\').attr ("disabled")) { 
      jQuery(\'input[name^="choose"]\').attr ("checked" , true); 
     } 
    }, 
    function() { 
     jQuery(\'input[name^="choose"]\').removeAttr("Checked"); 
    } 
) 

IF条件は可能ですか?あなたはおそらく(感謝フレデリックを)何をしたいのか

答えて

1

jQuery("#sbutton").click(function() { 
    if (jQuery('input[name^="choose"]').is(':disabled')) 
     return false; 
    if (jQuery('input[name^="choose"]').is(':checked')) 
     jQuery('input[name^="choose"]').removeAttr("checked"); 
    else 
     jQuery('input[name^="choose"]').attr("checked", true); 
}); 

または単に

jQuery("#sbutton").click(function() { 
    var checkbox = jQuery('input[name^="choose"]'); 
    if (checkbox.is(':disabled')) 
     return false; 
    checkbox.attr('checked', !checkbox.is(':checked')); 
}); 

あなたのコードの問題は、あなたが無効の評価は、すべてのボタンで評価されることを期待ということですtrueの場合は、最初の関数をクリックして使用します。それは他のすべてのクリックで呼び出されるだけで、他の機能は無効かどうかは気にしません。何があってもチェックボックスをチェックします。あなたは、ボタンが無効かどうかに応じて、私がやったように、クリックイベントにバインドするか、トグルイベントにバインド/アンバインドする必要があります。あなたはフィドル(http://www.jsfiddle.net)としてあなたのコードを提示し、あなたが何をしようとしてより徹底的に説明するならば、あなたを助けるために容易になるだろう、将来、何それはそれはありませんでは

ワーキング。

+0

質問者が[toggle](http://api.jquery.com/toggle-event/)イベントにバインドしたいと思います。[toggle()](http://api.jquery。 com/toggle /)メソッドを使用します。 –