0

ファンシーボックスをトリガーするのに問題があります。要素をクリックするとトリガーされるように設定しました。理由はまだわかりませんが、何らかの理由live()で、次のように を使用してバインドした場合にのみ fancybox が機能します。

$(document).ready(function() {
    // This works
    $('.fancybox').live('mousedown', function() {
        $(this).fancybox();
    });

    // This doesn't
    $('.fancybox').fancybox();
});

詳細については、こちらをご覧ください: Fancybox がロードされましたが、何も起こらず、エラーも発生しませんか?

問題は、実際に要素をクリックした場合にのみ機能することです。次を使用してクリックをトリガーしようとすると:

$('.fancybox').trigger('mousedown');

私は何も得ません!うまくいきません。

これを行う必要があるのは、画像がギャラリーで PHP を使用して (サムネイルなどで) 印刷されているためです。利用可能なギャラリーのドロップダウンのみが必要なため、ページの読み込み時にすべてのサムネイルを非表示にしてからループし、すべてのギャラリーを含むドロップダウン メニューを作成します。ここまでは順調ですね!インスペクターを使用して (クロムを使用して) 要素を表示し、手動でクリックすると、正常に動作します! ただし、問題は、ドロップダウンを使用してクリックをトリガーしようとすると、何も起こらないことです!

ドロップダウンのすべてにギャラリー/サムネイルIDのデータ属性が含まれるように設定しまし<option>た。ドロップダウンが変更されると(オプションを選択すると)、正しい画像が自動的に検出され、クリックがトリガーされます。ファンシーボックスを開く必要があります。正しい画像を見つけてクリックすることは知っていますが、クリックしても何も起こらないだけです。

それを試してみてください!

URL: http://goo.gl/r4Klf

コンテンツの最初のドロップダウン メニューを右クリックし、調べます。その上に、たくさんの.ngg-galleryoverview要素が表示されます。それらの 1 つをクリックして、要素に適用されているすべてのスタイルを削除します (element.style では、スタイルは基本的に要素を非表示にします)。次に要素を展開すると、そこに.ngg-gallery-thumbnail. display: noneスタイリングから外します。ページ上に要素が表示されるはずです。クリックしてみるとfancyboxが開きます。ただし、 を使用してクリックしようとすると$(the element).trigger('mousedown')、機能しません。次のような href 属性を使用してターゲットを設定してみてください。

jQuery('a[href="http://hallarna.se/wp-content/gallery/2013/spoksonatenloggaliten.jpg"]').trigger('mousedown');

jQuery は noConflict モードであることに注意してください。つまり、$() の代わりに jQuery() を使用する必要があります。

私はこれと数日間戦ってきました。どんなアイデアでも大歓迎です!

4

1 に答える 1

0

問題がどこにあるのかわかります。マウスダウンをトリガーすると、プラグインを起動して、クリックしたときに指定された要素を操作します。実際には何も表示されないはずです...クリックするか、クリックをトリガーするまで。

次のようなものを試してください

jQuery('a[href="http://hallarna.se/wp-content/gallery/2013/spoksonatenloggaliten.jpg"]').trigger('mousedown').trigger('click');

$('。fancybox')。fancybox();を使用して、fancyboxを意図したとおりに機能させるためのソリューションを探します。

于 2013-01-25T11:30:50.617 に答える