0

jQuery プラグイン ( link ) を使用して、外部ページをホームページの div にプルしています。各外部ページには、jQuery ベースの水平ギャラリー スライダーが含まれています。

例: http://www.iamtimothylong.com/example

外部ページが AJAX リクエスト (「ブック 1」または「ブック 2」をクリック) によって読み込まれると、それらの外部ページ内の水平スライダーが機能しなくなることに気付くでしょう。

ただし、div に静的に配置されている場合、水平スライダーは機能します (スライダー自体に問題がないことは明らかです)。

解決策/回避策を知っている人はいますか? 一人の男が言った

「XHR リクエストが完了したら、スライダーを新しい要素に再バインドする必要があります。AJAX リクエストの成功ハンドラー内で、mScrollBar() バインドを実行します。」

残念ながら、私はプログラミングに無知であり、素人の言葉で詳しく説明する必要があります。:)

AJAX ローダーのソースは /js/menu.js にあります。

4

1 に答える 1

0

発火していないイベントを置き換える典型的なケースだと思います.live('event')

基本的に、JavaScript が起動され、ページが読み込まれたとき (または呼び出されたとき) にイベント ハンドラーをアタッチすると、その時点でページに存在する既存の要素にイベント ハンドラーがアタッチされるため、新しいコンテンツを (AJAX 経由で) 読み込むときこれらのイベントは、ロードされたばかりでセレクターに一致する新しいコンテンツ イベントには関連付けられません。

この jQuery を修正するには、.live()現在存在する DOM 要素と動的に追加される将来の要素に一致するイベントがあります。

于 2011-02-05T23:34:02.697 に答える