1

「サイクル」と呼ばれるjQueryスライダーを使用するサイトがあります。スライドをクリックすると、ファンシーボックスがポップアップします。その後、スライダーは一時停止しますが、これは正しいですが、必要なのは、ファンシーボックスが閉じられた後にスライダーを再開することです。基本的に、このコードの2番目の部分を機能させることはできません。

$('.fancy-box').click(function(){
console.log('pause is working')
$('.hero-carousel').cycle('pause');
});

$('.fancybox-close').click(function(){
console.log('resume is working');               
$('.hero-carousel').cycle('resume');
}); 
4

1 に答える 1

0

その場でビルドされる場合に備えて、閉じるボタンにイベントデリゲートを使用してみてください(したがって、ページロードにはまだ存在しません)。

$("body").on("click", ".fancybox-close", function(event){
    console.log('resume is working');               
    $('.hero-carousel').cycle('resume');
});

アップデート:

これで問題は解決したようですので、もう少し問題が改善されたことを説明したいと思います(将来誰かが同じ問題を経験した場合に備えて)。

ページが読み込まれると、クラス名が。の要素はありませんfancybox-close。したがって、クリックハンドラーが何にも接続されることはありません。

$("body").on("click", ".fancybox-close", function(event){...});bodyタグ内で発生するクリック(ほぼすべてのクリック)をリッスンし、そのクリックがクラス名がの要素で発生した場合はfancybox-close、関数を実行します。したがって、ページの読み込み時に存在する要素に依存しなくなりました。

于 2013-03-13T23:20:34.787 に答える