'before'セレクターを使って 'label'タグでラジオボタンをスタイリングしています。 私はすべてのブラウザでクリック可能にするためにラベルの 'クリック'イベントを使用しています(クロムは前後の要素をサポートしていません)。 ラジオボタンをクリックしていくつかの要素を表示/非表示にする既存のスクリプトがあります。私はlablesのイベント「クリック」でスクリプトを書いている同じイベントの2つの別々のハンドラー
をやろうとしている何
。ラベルをクリックしながらラジオのクリックを開始しようとしているため、既存の表示/非表示機能が正しく機能していません。
私は
を必要とする私は、既存のスクリプト(表示/非表示)に影響を与えてはならない、それはすべてのブラウザで動作するスクリプトを記述する必要があります。
私は
- を行うことができない私は単純にIDを与えることによって、および属性のためにそれを終えることができません。 :(
- 私は私は私が他の方法で私のラジオを設計するためにHTML/CSSを変更することができます
- を行うことができると思う何
。既存のスクリプトをカスタマイズすることができます。しかし、そこにすることはできません変更を行うには多くの場所がある。:(
- 「変更」イベントを使用する代わりに、表示/非表示のdivのために「クリック」。
コードサンプルは既存のJSを編集することが許可されていないので
/*what I'm trying...*/
$(document).ready(function(){
$('input[type="radio"]+label').on('click',function(){
$(this).prev().click();
});
});
/*existing script*/
$('input[name="fieldname"]').click(function(){
if($('#fieldid').is(':checked')){
$('#divid').show();
$('#divid1').hide();
} else if($('#fieldid1').is(':checked')){
$('#divid1').show();
$('#divid').hide();
}
});
/*existing script*/
.divs, input[type="radio"]{display:none;}
input[type="radio"]+label::before{
content:" ";
display:inline-block;
position:relative;
left:0;
top:0;
background:red;
height:10px;
width:10px;
border-radius:50%;
}
input[type="radio"]:checked+label::before{
background:blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<input type="radio" name="fieldname" id="fieldid" class="fieldclass" />
<label>show textfield</label>
<input type="radio" name="fieldname" id="fieldid1" class="fieldclass" />
<label>show button</label>
<div id="divid" class="divs"><input type="text" size="30"></div>
<div id="divid1" class="divs"><input type="submit" value="button"></div>
</form>
回答ありがとう:) – Anand
はい、私は新しい後でスクリプトを書いてください。 – Anand
ようこそ@Anand ...大丈夫です。:) – Souvik