この質問は以前に何度も尋ねられており、他の質問を見ましたが、提案された修正は私には当てはまりませんでした。
問題は、関数.click
内のハンドラーが2 回発生していることです。collapseFieldsets()
ここに私のinit関数があります:
$(document).ready(function() {
navigation_setup();
collapseFieldsets();
$('input[placeholder], textarea[placeholder]').placeholder();
$(window).resize( function() {
var width = $(window).width();
$('h1').css('display', width < 1000 ? 'none' : 'block');
} );
});
これは私のcollapseFieldsetsです:
function collapseFieldsets() {
$("fieldset.collapseable legend").css("cursor", "pointer");
$("fieldset.collapseable legend label").css("cursor", "pointer");
$("fieldset.collapsed div.fieldsetContent").hide();
$("fieldset.collapseable legend").click(function(event) {
var fieldsetContent = $(this).parent().find("div.fieldsetContent");
fieldsetContent.toggle(200);
});
}
そして、これは私のHTMLがどのように見えるかです:
<fieldset class="collapseable">
<legend><label><input checked="checked" name="ClientUpdate" type="radio" value="Current" /> Mr John Smith</label></legend>
<div class="fieldsetContent">
<input id="ClientCurrent_PersonId" name="ClientCurrent.PersonId" type="hidden" value="9" />
<!-- More input elements etc -->
</div>
</fieldset>
collapseFieldsets
関数は一度だけ呼び出されます-呼び出しを挿入するとalert
、それらは一度だけ表示されます。
jQuery 1.9.1 を使用していますが、1.8.0 でも発生します。