1

非常に単純な機能を備えた小さなスクリプトがあります。チェックボックスがチェックされていない場合、ユーザーがクリックすると div が表示されます。それ以外の場合は、ユーザーがクリックすると div が非表示になります。スクリプトは次のとおりです(PHPコード内):

echo 
'<script> 
$(document).ready(function(){

if($("#chk_id'.$bank_name.'").is(":checked"))
{


   $("#chk_id'.$bank_name.'").click(function(){
      $("#form_show'.$bank_name.'").hide(300);
   });

}
else
{ 

    $("#chk_id'.$bank_name.'").click(function(){

    //alert("ddd");

    $("#form_show'.$bank_name.'").show(300);
   });
}
});    


</script>';

しかし、問題は show div が機能していても、 div を非表示にできないことです! どうしたの?JavaScript ライブラリ :<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

4

4 に答える 4

3

あなたの機能は次のようなものでなければならないと思います:

function checkBankName(){
    if($("#chk_id'.$bank_name.'").is(":checked"))
    {
        $("#form_show'.$bank_name.'").show(300);
    }
    else
    {
        $("#form_show'.$bank_name.'").hide(300);
    }
}

$(document).ready(function(){
    // first time
    checkBankName();

    // on check
    $("#chk_id'.$bank_name.'").click(function(){
        checkBankName();
    });
});   
于 2013-07-31T12:18:48.177 に答える
3

これを試して:

$(document).ready(function(){
    $('body').on('click', "#chk_id'.$bank_name.'", function() {
        if($("#chk_id'.$bank_name.'").is(":checked")) {
            $("#form_show'.$bank_name.'").hide(300);
        } else {
            $("#form_show'.$bank_name.'").show(300);
        }
    });
});
于 2013-07-31T12:18:21.863 に答える
0

これを試して:

デモ

 $("#chk_id").click(function(){
       if($('#chk_id:checked').length > 0){
          $('.bank_name').hide(300);
       }
       else{
          $('.bank_name').show(300);
       }
   });

私はあなたのhtml実装を推測しました。#form_showセレクターに を含める必要はないかもしれません。

または、toggle を使用して次のようなことを行うこともできます。

チグルデモ

// code to initialize state before click

$("#chk_id").click(function(){    
    $('.bank_name').toggle(300);            
});

お役に立てれば

于 2013-07-31T12:28:22.360 に答える
0

別の回答の簡略版:

$(document).ready(function() {
    $("#chk_id' . $bank_name . '").change(function() {
        $("#form_show' . $bank_name . '")[this.checked ? 'show' : 'hide'](300);
    }).change();
});
于 2013-07-31T12:38:30.387 に答える