複数のaddEventListenerを実行しようとしていますが、何か問題がありますか?
たとえば、ページに3つのdivがあり、最初のdivが最初に表示され、他の2つが非表示になっているとします。
<div id="d1">
<a onClick="
document.addEventListener("backbutton", show_div1, false);
$('#d1').hide();
$('#d2').show();
"
</a>
</div>
<div id="d2"></div> - initially hidden
<div id="d3"></div> - initially hidden
div 2を表示し、div 1を非表示にし、戻るボタンのリスナーをshow_div1()に設定すると、すべて正常に機能します。戻るキーを押すと、「#div1を表示する必要があります」と警告します(// $('#d1')。show();コメント付き)
show_div1(){
//$('#d1').show(); $('#d2').hide();
alert ('I should show #div1');
}
しかし今、問題が発生します
<div id="d2">
<a onClick="
document.removeEventListener("backbutton", show_div1, false);
document.addEventListener("backbutton", show_div2, false);
$('#d2').hide();
$('#d3').show();
"
</a>
</div>
戻るボタンが押されていなくても、すぐに「#div2を表示する必要があります」と起動します。addEventListenerは、メイン関数show_div2()を開始したようなものであり、戻るボタンのリスナーをその関数に設定するだけではありません。
show_div2(){
//$('#d2').show(); $('#d3').hide();
alert ('I should show #div2');
}
これが発生する理由として考えられるものは何ですか?