質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

2230閲覧

ajaxとjQueryのgallerifficの組み合わせで困っています。

space_sss

総合スコア81

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2016/08/29 00:45

編集2016/09/01 11:27

###前提・実現したいこと
現在gallerifficのjQueryを使用しています。
その際ページをカテゴリわけをして表示させています。
カテゴリページを切り替える際ajaxを使いページ切り替えをしたいと考えています。
ですがうまく動きません…
###test.html

HTML

1<!DOCTYPE HTML> 2<html><head> 3<meta charset="utf-8"> 4<link href="galleriffic.css" rel="stylesheet" type="text/css" media="all"> 5<script type="text/javascript" src="jquery-1.8.3.min.js"></script> 6<script type="text/javascript" src="jquery.galleriffic.js"></script> 7<script type="text/javascript" src="jquery.opacityrollover.js"></script> 8<script type="text/javascript"> 9 jQuery(document).ready(function($) { 10 $('div.content').css('display', 'block'); 11 var onMouseOutOpacity = 0.27; 12 $('#thumbs ul.thumbs li').opacityrollover({ 13 mouseOutOpacity:onMouseOutOpacity, 14 mouseOverOpacity:1.0, 15 fadeSpeed:'fast', 16 exemptionSelector:'.selected' 17 }); 18 var gallery = $('#thumbs').galleriffic({ 19 playLinkText:'停止', 20 pauseLinkText:'再生', 21 prevLinkText:'前へ', 22 nextLinkText:'次へ', 23 onSlideChange: function(prevIndex, nextIndex) { 24 this.find('ul.thumbs').children() 25 .eq(prevIndex).fadeTo('fast', onMouseOutOpacity).end() 26 .eq(nextIndex).fadeTo('fast', 1.0); 27 }, 28 onPageTransitionOut:function(callback) { 29 this.fadeTo('fast', 0.0, callback); 30 }, 31 onPageTransitionIn:function() { 32 this.fadeTo('fast', 1.0); 33 } 34 }); 35}); 36</script> 37<script> 38function gallery(category){// Ajax通信 39//送信部分 40 $.ajax({ 41 url : 'hantei.php', 42 type : 'post', 43 dataType : 'text', 44 data : { 45 val: category 46 } 47 }) 48//受信部分 49 .done(function(response) { 50 $( '#category' ).remove(); 51 $( '#thumbs' ).html( '<ul class="thumbs noscript" id="category">' + response + '</ul>' ); 52 // ここで galleriffic を再実行する( opacityrollover も) 53 }) 54 .fail(function() {//エラーが起きた場合 55 alert('通信失敗') 56 }); 57} 58</script> 59<title>test</title> 60</head> 61<body> 62<div id="gallery"> 63<section> 64 <h2>画像集</h2> 65 <ul> 66 <li onClick="gallery('test1')">テスト1</li> 67 <li onClick="gallery('test2')">テスト2</li> 68 <li onClick="gallery('test3')">テスト3</li> 69 <li onClick="gallery('test4')">テスト4</li> 70 </ul> 71 <div class="gallery"> 72 <div class="content"> 73 <div class="slideshow-container"> 74 <div id="loading" class="loader"></div> 75 <div id="slideshow" class="slideshow"></div> 76 </div> 77 <div id="caption" class="caption-container"></div> 78 <div id="controls" class="controls"></div> 79 </div> 80 <div id="thumbs" class="navigation"> 81 <ul class="thumbs noscript" id="category"> 82<?php 83$gallery=array("test1","テスト1です。"); 84include('gallery.php'); 85?> 86 </ul> 87 </div> 88 </div> 89</section> 90</div> 91</body> 92</html>

###gallery.php

PHP

1<?php 2 for($i=1; $i<=5; $i++): 3?> 4 <li> 5 <a class="thumb" name="leaf" href="<?=$gallery[0]?>_<?=$i?>.jpg" title="<?=$gallery[1]?>"> 6 <img src="<?=$gallery[0]?>_<?=$i?>_s.jpg" alt="<?=$gallery[1]?>" /> 7 </a> 8 <div class="caption"> 9 <div class="image-title"><?=$gallery[1].$i?></div> 10 <div class="image-desc"></div> 11 </div> 12 </li> 13<?php 14 endfor; 15?>

###hantei.php

PHP

1<?php 2$val=htmlspecialchars($_POST['val']); 3 switch($val){ 4 case "test1": 5 $category="テスト1です。"; 6 break; 7 case "test2": 8 $category="テスト2です。"; 9 break; 10 case "test3": 11 $category="テスト3です。"; 12 break; 13 case "test4": 14 $category="テスト4です。"; 15 break; 16 default: 17 $category="テスト5です。"; 18 } 19$gallery=array($val,$category,1); 20//戻し 21header('Content-type: application/text charset=utf-8'); 22include('gallery.php'); 23?>

プラグインへのリンクがこちらです。

Galleriffic | A jQuery plugin for rendering fast-performing photo gallerie

http://www.twospy.com/galleriffic/js/jquery.galleriffic.js

ご指摘を頂いた点を修正いたしました。
ここで galleriffic を再実行する( opacityrollover も)とご指摘いただいたのですがどのように再実行すればよろしいのでしょうか?
初歩的なことでお手数かけてしまいますがどうぞ宜しくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

下記部分でgallerifficのイベント類を登録した要素を上書きしているため、正しく動かないと思います。(上書きされた要素はイベントが設定されていない状態です)

JavaScript

1//受信部分 2.done( function( response ) { 3 $( '#category' ).html( response ); 4} )

galleriffic には appendImageremoveImage で要素を追加/削除する方法もありますが、要素を全削除してしまい、それからgalleriffic を再実行するのが早いと思います。

JavaScript

1//受信部分 2.done( function( response ) { 3 $( '#category' ).remove(); 4 $( '#thumbs' ).html( '<ul class="thumbs noscript" id="category">' + response + '</ul>' ); 5 // ここで galleriffic を再実行する( opacityrollover も) 6} )

プラグインへのリンクが質問文に無いのですが、多分これのことだと思います。

【Galleriffic | A jQuery plugin for rendering fast-performing photo galleries】
http://www.twospy.com/galleriffic/

http://www.twospy.com/galleriffic/js/jquery.galleriffic.js】
http://www.twospy.com/galleriffic/js/jquery.galleriffic.js

投稿2016/08/31 16:42

編集2016/08/31 16:45
kei344

総合スコア69398

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

space_sss

2016/09/01 10:59

ご回答ありがとうございます。 プラグインリンクを貼り忘れていました。。。お手数おかけします。 // ここで galleriffic を再実行する( opacityrollover も) と記載がごございますがそちらはどの手段で行うのがよろしいでしょうか? 再実行といたやり方がわかりません。。。 初心者で質問ばかりで大変申し訳ありません。。。
kei344

2016/09/02 10:09

> 初心者 個人的なことなので、他の方はどうかはわかりませんが、「初心者」と宣言されたほうが厳しく当たる必要を感じるので、「自分で考えろ、それも修行です」と返したくなります。質問フォームのタイトル横にある初心者マークを押すことで「初心者である」ということはわかりますので、本文/コメントに「初心者」と書かなくても大丈夫です。 > 再実行 書かれているコードでは、jQuery(document).ready(function($) {}); の中で行っている処理をもう一度行えばよいという意味です。 中身を関数化して、「// ここで 」の部分で実行する感じでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問