Web ユーザー コントロールに JavaScript があり、ページ上でそのコントロールの 2 つのインスタンスをインスタンス化します。コントロールは、ヘルプ テキストを表示するためのものであり、開くか閉じるかを切り替える必要があります。
document.ready 関数は、2 回実行されるという点で期待どおりに動作します。ただし、いずれかのコントロールをクリックすると、スクリプトが 2 回実行されるため、コントロールが開いてから閉じます。
クリックされたコントロールに対してスクリプトが 1 回だけ実行されるようにするにはどうすればよいですか。
<div class="helpControlHolder">
<div class="expandableHeading">Show (Hide) </div>
<div class="expandableContent commentsTable" >
<ul id="ulComments" runat="server"></ul>
</div>
</div>
<script type="text/javascript">
function slideToggle(e, ui) {
debugger;
//find the right control to slideToggle
var ct = e.currentTarget;
var controlHolder = ct.parentNode; //up the dom one element
$(controlHolder).find(".expandableContent").slideToggle(500); //back down the dom to the element we want to animate
}
$(document).ready(function () {
//find the right control to hide
var pare = $('.helpControlHolder');
pare.find(".expandableContent").hide();
pare.find(".expandableHeading").click(function (e, ui) {
e.preventDefault();
slideToggle(e, ui);
});
});
</script>