2

簡単な解決策があるようですが、まだ理解できませんでした。同様のトピックが何千もありますが、どれもうまくいきませんでした。この質問を非常に簡単な方法で尋ねています。

ボタンがあり、ボタン「A」としましょう。このボタンがクリックされたときに外部ページのセクションをロードしたいのですが、

そのセクションがロードされた後、jQuery を使用して非表示のコンテンツを表示する別のボタン (「B」) (ロードされたコンテンツ内) があります。問題は、この 2 番目のボタンが機能しないことです。.load('content.html #1, script'); を使用して、タイムアウトを設定しようとしました。&...

コードは次のとおりです。 メインページ:

<body>
<a href="#" id="load">Load</a>
<div id="holder"></div>

</body>

目次ページ:

<body>
<section id="1">
Content 111
<a href="#" id="show">Show...</a>
<div id="showhere"></div>
</section>
<section id="2">
Content 222
</section>

</body>

脚本

$(document).ready(function() {


   $("#load").click(function() {
        $('#holder')
           .html('<div> Loading</div>')
           .load('content.html #1');
    });

$("#show").click(function() {
        $('#showhere')
           .html('<p>here it is</p>')
    });

 });

編集:

完璧な回答をありがとうございます。この場合、最短で最も簡単なのは .live を使用することだと思いますが、これは複雑さを軽減するためのサンプルにすぎません。実際のプロジェクトでは、複雑な jquery を実行する必要がありますロードされたコンテンツ、.html要素を追加するだけではありません。したがって、基本的に、ロードされたコンテンツでJavaスクリプトを機能させるソリューションを求めています。おそらく、コンテンツがロードされた後に何らかのリセットまたはリロードですか?

編集2:

まあ、私はまだこれに対する解決策を見つけていないので、コードを変更することにしました。すべての関数に .live を追加していますが、別の問題があります。イベントには次のようなものを使用する必要があることを理解しています

$("#show").live("click",function() {

それ以外の

 $("#show").click(function() {

しかし、次のように、関数に含まれていないものがもっとたくさんあります。

var $itval = $("#holder li").length;
    $(".filters li input[value*='all']").parent().find('span').html($itval);

    $("#holder li, .played").show();

    $(".entry-made").hide();

jquery全体に影響を与えない関数をラップする方法はありますか?

4

4 に答える 4

1

この場合、ライブバインディングを使用することもできます。現在の「#showonclick」をこのバージョンに置き換えます。

$("#show").live("click",function() {
    $('#showhere').html('<p>here it is</p>')
});
于 2012-12-23T12:28:23.587 に答える