0

先日、同じような質問をして、解決したと思ったのですが、今は解決していないことに気づきました。ただし、他の質問から何か価値のあることを学んだので、誰かの回答クレジットを削除するのではなく、この新しい質問を作成しています。今回は私の問題についてもう少し具体的にしようと思います。

カスタム関数を使用してPHPファイルから動的なAJAXコンテンツをロードするHTMLページがあります。例:jQuery.ajax

$('#navigation a').click(function() {
  var getPage = $(this).attr("class");
  generatePage(getPage);
});

function generatePage(pageNum) {
  $('#ajax-content').load(page.php + ' #someDiv-' + pageNum);
}

したがって、この場合、#navigationメインページの任意のリンクをクリックすると、そのクラス名に一致するコンテンツ(この場合は「1」としましょう#someDiv-1)がpage.phpから同じ場所にある#ajax-contentコンテナにドロップされます。メインページにあります。元気です。その部分は機能します。

取得したAJAXコンテンツ内に同じ方法でリンクを作成しようとすると、問題が発生します。したがって、取得した#someDiv-1コンテンツに次のようなリンクが含まれている場合:

<a href="#" class="4">Page 4</a>

それをクリックすると、のpage.php内容が#someDiv-4メイン#ajax-contentコンテナにダンプされるようにするにはどうすればよいですか?コンテナはAJAXコンテンツ内にも存在しないことに気付いたので、これを行う別の方法はありますか?

AJAXプロを探しています!あなたは私に答えを渡す必要はありませんが、正しい方向への強い突き出しをいただければ幸いです。読んでくれてありがとう。

4

1 に答える 1

2

そのクラス名を検索し、その要素のURLを変更するjQueryイベントハンドラーを作成します。

私はおそらくこのようにすることでそれを簡単にするでしょう:

<a href="#" class="linkto _4">Page 4</a>

このようにして、「linkto」クラスを持つすべての要素を選択し$(.linkto)、他のクラス名を解析して、イベントハンドラーのURLを作成できます。

jQueryは.on().live()AJAXを介してロードされたコンテンツにイベントハンドラーを自動的に接続します。

data-または、クラス名の代わりにHTML5属性を使用してURL情報を保持することもできます。

<a href="#" class="linkto" data-alt_url="_4">Page 4</a>

$('.linkto').data('alt_url')
于 2012-05-07T14:06:52.737 に答える