私は次のjqueryスクリプトを持っています:
$(function(){
$('#top-menu').on('click', 'a.change-menu', function(e){
e.preventDefault()
$("#menu-change-div").load($(this).attr("href"));
});
});
$(function(){
$('#menu-change-div').on('click', 'a.change-content', function(e){
e.preventDefault()
$("#content").load($(this).attr("href"));
});
});
本文内のHTMLは次のとおりです。
<div id="menu-div">
<div id="top-menu">
<h3 id="top-tabs"><a href="contentColumn.html" class="change-menu">Contents</a></h3>
<h3 id="top-tabs"><a href="indexColumn.html" class="change-menu">Index</a></h3>
<h3 id="top-tabs"><a href="searchColumn.html" class="change-menu">Search</a></h3>
</div>
<div id="menu-change-div">
<ul>
//Lots of nested list items and ul's with #change-content id
</ul>
</div>
</div>
<div id="content">
<div id = "page-content">
//content section
</div>
</div>
最初の関数は、メニューdivのリスト項目をクリックして、htmlファイルをコンテンツdivにロードしたときに発生します。
2つ目は、別のタブが選択されたときにメニューdivの内容を変更します。
リストアイテムをクリックすると、すべてが期待どおりに機能し、タブをクリックすると正しく機能します。最初にリストアイテムをクリックし、次にタブをクリックしてから別のリストアイテムをクリックすると、問題が発生します。最初のクリックのようにhtmlをdivにロードするのではなく、hrefをたどって、別のウィンドウで開きます。私が間違っていることについて何か考えはありますか?