ラジオタイプの要素が要素に含まれている状況があります。アンカー要素にはhrefがありますが、要素にjQueryの 'クリック'ハンドラを追加することでその動作をオーバーライドしたいと考えています。アンカー要素内のラジオボタンがjQueryクリックハンドラの後にリセットされます
クリックハンドラは、その中のラジオボタンをグループ内で選択します。これはアンカーがクリックされたときにすべて動作しますが、ラジオボタンをクリックすると、jQueryは選択したラジオを以前選択したラジオにリセットします。ここで
が問題を複製簡素化のページです:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#a1").click(function(event) {
anchorClicked("a1");
return false;
});
$("#a2").click(function(event) {
anchorClicked("a2");
return false;
});
});
function anchorClicked(anchorId) {
$('#' + anchorId + ' input:radio').attr("checked", true);
alert("Look at what is selected and what happens after the event when this dialog is closed!");
}
</script>
</head>
<body>
<form>
<ul>
<li id="li1">
<a id="a1" href="javascript:alert('default functionality')">
<input value="1" name="rb" type="radio" id="rb1">
<span>Details 1</span>
</a>
</li>
<li id="li2">
<a id="a2" href="javascript:alert('default functionality')">
<input value="2" name="rb" type="radio" id="rb2">
<span>Details 2</span>
</a>
</li>
</ul>
</form>
</body>
誰もが、私はラジオボタンをリセットするためのjQueryのを防ぐことができますどのように任意のアイデアを持っていますか?
ちょうどあなたがそれに私を打つことに気づいた。 :)はい、問題はラジオボタンのイベントをキャンセルすることですので、これが機能します。 – Chris
しかし、 'href'属性を持たないアンカーをクリックすることはできません。少なくとも、有効なタグではありません。 –
ブラウザはリンクであることを視覚的に示すものではないかもしれませんが、ポインタを変更するためのhover CSSルールを提供できます。 – GrievousAngel