12

hider(something); を呼び出すラジオ ボタンがいくつかあります。それらが変更されたとき、つまりチェックされているかチェックされていないとき。これは機能します。つまり、チェックされている場合は JS 関数を呼び出しますが、そのグループから別のラジオ ボタンを選択したためにチェックされていない場合は、js スクリプトを再度呼び出しません。

onchange 以外のものを使用する必要がありますか?

これは、現時点でラジオボタンがどのように見えるかです:

<input name="ostype" type="radio" value="0" onchange="hider(solaris);">solaris
<input name="ostype" type="radio" value="1" onchange="hider(linux);">linux

私のハイダー機能は現在:

function hider(divid) {
 if ($(divid).is('.hidden')) {
  $(divid).removeClass('hidden');
 } else {
  $(divid).addClass('hidden');
 }
}
4

7 に答える 7

4

を使用しonclickます。

また、関数呼び出しの引数として、id を持つ文字列を jQuery セレクター ( '#solaris')として使用する必要がありthisます。

<input name="ostype" type="radio" value="0" onclick="hider(this);">solaris
于 2011-01-25T15:38:18.787 に答える
1

ドキュメントの準備ができたら、変更イベントをすべてのラジオ ボタンにバインドします。

$(function(){

   $('input[name=list_type]:radio').on("change", function(){   
       showHideBlock();
   });
   showHideBlock();    
});

表示 -- 非表示ブロックは、1 つのラジオ ボタンのステータスに依存します。

function showHideBlock(){
   if ($("#Option").is(':checked')){
       $('#Block').show();
   } else {
       $('#Block').hide();
   }

}

于 2014-08-18T14:16:42.423 に答える
0

私があなたを正しく理解している場合は、すべてのボタンでonClickを使用し、クリックしたボタンを表示しながら他のボタンを非表示にすることができます。このような:

function showInfo(info)
    {
        var info = document.getElementById("1");
        info.style.display = "block";

        var info = document.getElementById("2");
        info.style.display = "none";

        }

つまり、最初のものが表示され、2番目のものが非表示になっています。次に、非表示にする必要があるすべてのdivに1つ追加します。

jQueryを使用してこれを行うこともできます。

function showAndHide(val1, val2)
        {
        $(val1).hide();
        $(val2).show();
        }

また、すべてのdivにstyle = "display:none"を含めることを忘れないでください。

于 2012-11-28T10:15:18.523 に答える
0

インスピレーションを得る可能性のあるバージョンを次に示します (Chrome と FF でテスト済み)。

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js">
</script>
</head>
<body>
<input type="radio" name="ostype" checked="checked" onclick="hider('linux')">linux
<input type="radio" name="ostype" onclick="hider('solaris');">solaris

<div id="content">
        <div id="linux">linux</div>
        <div id="solaris" style="display:none;">solaris</div>
</div>
<script>
function hider(divname) {
        $('#content div').each(function(){
                $(this).hide(); 
        });

        $('#'+divname).show();
}
</script>
</body>
</html>
于 2011-01-25T15:36:25.647 に答える
0
<input name="ostype" type="radio" value="0" onclick="hider('solaris');">solaris
<input name="ostype" type="radio" value="1" onclick="hider('linux');">linux
function hider(divid) {
 $( 'div.div_class' ).hide();
 $( '#' + divid ).show();
}

div を呼び出すクラスを必ず追加し、関数呼び出しで solaris と linux を引用符で囲んでください。

于 2011-01-25T15:48:26.423 に答える
-1

vars solaris と linux を宣言しましたか? そうしないと、ブラウザにエラーが表示されます

于 2011-01-25T15:49:07.990 に答える