私はメニューとサブメニューを持っています。サブメニューのコンテンツはajaxで読み込まれます。JQUERY Toggle and Ajax
サブメニューが切り替わります。問題は、サブメニューを隠すためにクリックすると、それでもajax呼び出しが行われることです。
メニューを開くときにクリックするだけで、どのようにajaxコールを行うことができますか?
$("#showsubmenu").live("click", function() {
var attrib = $(this).attr('menuid');
$("#"+attrib).toggle();
$("#"+attrib).html("<h4> Loading links...</h4>");
$.ajax({
cache: false,
url: "submenu.php",
dataType: "html",
data: "&menuid="+attrib,
success: function (data) {
$("#"+attrib).html(data);
},
error: function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
}
});
});
私はこれを試してみました。ありがとう!メニューが開いているたびにリロードしたいのですが? – vitalyp
代わりに.toggleClass( "submenu-loaded")を使うことができます。そうでない場合はクラスを追加し、存在しない場合は削除します(ただし、Ajax呼び出しの外で行う必要があります)。代わりに、 'else {$(this).removeClass( "submenu-loaded");}を追加することもできます。 } 'を上記のif()testに置き換えます。ポイントはクラスが存在しない場合は削除し、そうでない場合は追加します(そしてAjaxの呼び出しを行います)。 –
ああ、あなたが好きなら回答を受け入れるか投票してください;-) –