0

これは私の HTML コードです:

<a href="#" class="menu_item"><img src="Home-48.png" alt="education" /></a>
<br /><br />
<a href="#" class="menu_item"><img src="Shield_48.png" alt="education" /></a>
<br /><br />
<a href="#" class="menu_item"><img src="Education-48.png" alt="education" /></a>
<br /><br />
<a href="#" class="menu_item"><img src="Money-Bag-48.png" alt="education" /></a>

これは私のJqueryコードです:

$(document).ready(function(){
    $('.menu_item1').click(function (){
        $('#custom_menu_loading_section').fadeIn(800, function (){
            $('#custom_menu').load('education.html', {}, function () { $( "#accordion" ).accordion({ heightStyle: "fill" }); });
        });
    });
});

画像をクリックすると にeducation.htmlロードされ$("#custom_menu")ますが、1 回しか機能しません。たとえば、最初の画像をクリックすると正しく機能しますが、その後 2 番目の画像をクリックすると機能しません!? なんで?


私の目標:ユーザーがクリックしたときにjqueryで外部ファイルのコンテンツ(home.html、about.html、.. . ) ローディング効果の「#custom_menu_loading_section」を表示して「#custom_menu」に挿入します。

4

2 に答える 2

1

クリックする代わりにライブをお試しください。

ドキュメントから:

現在および将来、現在のセレクターに一致するすべての要素にイベントハンドラーをアタッチします。

于 2012-12-28T06:41:59.590 に答える
0

jQuery チームからのメモ:

jQuery.fn.live() は非推奨です。jQuery.fn.die() は非推奨です

原因: .live() および .die() メソッドは、パフォーマンスと使いやすさの欠点により 1.7 で廃止され、サポートされなくなりました。

解決策: .on() または .delegate() を使用して .live() の呼び出しを書き直します。そのための手順は、.live() API ドキュメントに記載されています。

代わりにこれを使用してください:

$(document).ready(function () {
     $(document).on('click', '.menu_item1', function () {
          // do something
     });
});
于 2012-12-28T18:56:29.270 に答える