1

ギャラリーが10個あります。たとえば、gallery1.php、gallery2.phpなどです。

「FirstGallery」や「SecontGallery」などを押すたびにナビゲーターを作りたいです。

divなどのコンテンツを変更するだけです。

ギャラリーには、forループ付きの画像が表示されます。基本的に、すべての写真の名前をシリーズ番号に変更してから、forループを使用して次々に印刷します。

HTMLのIFRAMEを使用してみましたが、コンテンツの高さに高さを設定するスクリプトを実行しようとすると、すべてのブラウザーでスクリプトが機能しなかったため、問題が発生しました。私は他のスクリプトをグーグルで検索し、今までに約10個のスクリプトを試しましたが、すべてのブラウザーで機能するものはないようです。

すべてのブラウザで動作するスクリプトがある場合は、それが役立ちます。

そうでない場合、divコンテンツを別のWebページのコンテンツに変更するにはどうすればよいですか?他のWebページから取得しようとしているコンテンツは、Forループの結果であると考えてください。

別のギャラリーを選択するたびにページ全体をリロードしたくありません。

4

2 に答える 2

0

これはAJAXで実現できます。基本的に、新しいギャラリーを選択すると、JavaScript(jQueryの使用を推奨)が関連するPHPページをフェッチし、次のようにdivに配置します。

$.post('gallery1.php', function(data) {
  $('#the-div-id').html(data);
});
于 2013-01-12T17:43:47.143 に答える
0

AJAXを使用して、サーバーからコンテンツを取得し、ページ全体をリロードせずにページに挿入できます。

jQueryには多数のAJAXメソッドがあり、その中で最も単純なものはload()です。

ギャラリーリンクに共通のクラスを与えます。

<a class="gallery_link" href="gallery1.php">One</a>

次に、jQueryで:

$(function(){    
    $('.gallery_link').click(function(){
      /* "this" inside click handler refers to link clicked*/
     var galleryUrl= this.href;
      $('#galleryDiv').load(galleryUrl, function(){
        /* new content is oaded into the DIV, can run any other code here that manages new content*/
      });
      /* prevent browser opening url in window*/
      return false;    
    })
});

API参照:http://api.jquery.com/load/

于 2013-01-12T17:47:06.907 に答える