2016-11-28 9 views
0

私は壮大なポップアップjQueryライブラリを自分のサイトで動作させようとしています。Magnificent Popupは動作しません

下記のHTMLを参照してください。それは適切にスタイルシートとスクリプトを含むようです。代わりに、お勧めの

<script src="https://code.jquery.com/jquery-3.1.1.min.js" integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous"></script> 

:あなたは、私が使用しているわかります

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 

が、私はすでに、後者で、前者を交換しようとしていると、それはまだ動作しません。完全なHTML:

<!DOCTYPE html> 
<head> 
<meta charset="utf-8"> 
<meta name="viewport" content="width=device-width, initial-scale=1"> 
<link rel="stylesheet" href="styles/normalize.css"> 
<link rel="stylesheet" href="styles/mystyles.css"> 
<link rel="stylesheet" href="dimsemenov-Magnific-Popup-2ff1692/dist/magnific-popup.css"> 
<link href="https://fonts.googleapis.com/css?family=Cormorant+Garamond:400,600,700|Inconsolata|Indie+Flower|Oswald:400,700|Taviraj:400,600,700" rel="stylesheet"> 
<link rel='shortcut icon' type='image/x-icon' href='/favicon.ico' /> 
<title>Zach Sedefian</title> 
</head> 
<body> 
<div class="top"> 
    <h1>Personal page</h1> 
</div> 
<div class="left"> 
    <nav> 
     <a class="nav-link" id="link-1">About</a> 
     <a class="nav-link" id="link-2">Web</a> 
     <a class="nav-link" id="link-3">Music</a> 
     <a class="nav-link" id="link-4" onclick=>Photo</a> 
     <a class="nav-link" id="link-5">Contact</a> 
    </nav> 
</div> 
<div class="main"> 
    <p class="main-p">Welcome. Use the sidebar to navigate.</p> 
</div> 

私はこれは私がここに示され、クリック()関数を使用して、関連するIMG/DIVのHTMLを追加している奇妙なことを知っている:

$('#link-4').click(function(){ 
$('.main').html(""); 
$('.main').html('<div class="photo-gallery"><div class="photo-container"><a class="test" href="images/mosque-L.jpg"><img class="test-img" src="images/mosque-Q.jpg"></a></div><div class="photo-container"><a href="images/square-L.jpg"><img src="images/square-Q.jpg"></a></div><div class="photo-container"><a href="images/light-L.jpg"><img src="images/light-Q.jpg"></a></div><div class="photo-container"><a href="images/arch-L.jpg"><img src="images/arch-Q.jpg"></a></div><div class="photo-container"><a href="images/cows-L.jpg"><img src="images/cows-Q.jpg"></a></div><div class="photo-container"><a href="images/land-L.jpg"><img src="images/land-Q.jpg"></a></div><div class="photo-container"><a href="images/cascade-L.jpg"><img src="images/cascade-Q.jpg"></a></div><div class="photo-container"><a href="images/guard-L.jpg"><img src="images/guard-Q.jpg"></a></div><div class="photo-container"><a href="images/green-L.jpg"><img src="images/green-Q.jpg"></a></div><div class="photo-container"><a href="images/edu-L.jpg"><img src="images/edu-Q.jpg"></a></div><div class="photo-container"><a href="images/biz-L.jpg"><img src="images/biz-Q.jpg"></a></div><div class="photo-container"><a href="images/cal-L.jpg"><img src="images/cal-Q.jpg"></a></div></div><p><a href="https://www.flickr.com/photos/[email protected]/">More on flickr</a></p>'); 
}); 

私は実際にindex.htmlファイルに入れようとしましたが、何も変わりません。

app.jsでmagnificpopup()関数をさまざまな方法で呼び出そうとしています。最初の方法は私が持っていたい、下の2つはそれを呼び出すための最も簡単な方法です(また働かない)。

$('.photo-container').magnificPopup({ 
    delegate: 'a', // child items selector, by clicking on it popup will open 
    type: 'image', 
    closeOnContentClick: true, 
    gallery:{enabled:true} 
}); 

$('.test').magnificPopup({type:'image'}); 
$('.test-img').magnificPopup({type:'image'}); 

デバッグエラーが発生していません。どんな助けでも大歓迎です。私はこのサイトに来て、誰かのスレッドで答えが見つからないのは初めてです。前もって感謝します。

+0

'のonclick =' 'で。最低限で 'onclick =" "'にする必要があります(もちろん何もしません) –

+0

クリックハンドラでHTMLを追加する場合、関連ノードが存在する前に 'magnificPopup'が既に初期化されています。このメソッドを引き続き使用する場合は、同じクリックハンドラで 'magnificPopup'を呼び出し、' setTimeout'でラップして、関連するDOMがレンダリングされていることを確認してください。 –

+0

時間をかけて、現在の投稿とは異なる投稿を明確にしてください。 – nyedidikeke

答えて

0

完全なパスを入力する必要があります。

$('div').magnificPopup({ 
delegate: 'div div a', // child items selector, by clicking on it popup will open 
type: 'image', 
closeOnContentClick: true, 
gallery:{enabled:true} 
}); 
+0

ページのすべてのdivにプラグインを追加しているように見えます。それはあなたのサイトのパフォーマンスを傷つけるでしょう。より良いセレクタを見つけ、デリゲートのパスを –

+0

に調整することをお勧めします。 '$( '。photo-gallery')を提案しました。magnificPopup' with delegate: 'div a'' –

0

$('.photo-container').magnificPopup({ ... })は、そのセレクタに一致するクラスを見つけることができる場合にのみ機能します。そのコード行が実行された後にそのクラスを動的に追加する場合、$('.photo-container')は要素を返しません。あなたは何ができるか

は次のとおりです。リンク4`が正しくない

$('#link-4').click(function(){ 
    $('.main').html(""); 
    $('.main').html('<div class="photo-gallery"><div class="photo-container"><a class="test" href="images/mosque-L.jpg"><img class="test-img" src="images/mosque-Q.jpg"></a></div><div class="photo-container"><a href="images/square-L.jpg"><img src="images/square-Q.jpg"></a></div><div class="photo-container"><a href="images/light-L.jpg"><img src="images/light-Q.jpg"></a></div><div class="photo-container"><a href="images/arch-L.jpg"><img src="images/arch-Q.jpg"></a></div><div class="photo-container"><a href="images/cows-L.jpg"><img src="images/cows-Q.jpg"></a></div><div class="photo-container"><a href="images/land-L.jpg"><img src="images/land-Q.jpg"></a></div><div class="photo-container"><a href="images/cascade-L.jpg"><img src="images/cascade-Q.jpg"></a></div><div class="photo-container"><a href="images/guard-L.jpg"><img src="images/guard-Q.jpg"></a></div><div class="photo-container"><a href="images/green-L.jpg"><img src="images/green-Q.jpg"></a></div><div class="photo-container"><a href="images/edu-L.jpg"><img src="images/edu-Q.jpg"></a></div><div class="photo-container"><a href="images/biz-L.jpg"><img src="images/biz-Q.jpg"></a></div><div class="photo-container"><a href="images/cal-L.jpg"><img src="images/cal-Q.jpg"></a></div></div><p><a href="https://www.flickr.com/photos/[email protected]/">More on flickr</a></p>'); 

    $('.photo-container').magnificPopup({ 
     delegate: 'a', // child items selector, by clicking on it popup will open 
     type: 'image', 
     closeOnContentClick: true, 
     gallery:{enabled:true} 
    }); 
}); 
関連する問題