クリックするボタンがあり、チェックできるチェックボックスに応じて、必要なコンテンツをファンシーボックスにロードします。これらのチェックボックスは、fancybox 内の iframe に表示する必要がある URL の値を変更します。
チェックボックスを再度変更すると、HTMLでURLが変更されますが、ファンシーボックスはまったくポップしません。
これが私のボタンとファンシーボックスへのリンクです:
<button type="button" title="Compare" class="button">Compare</button>
<a class="comparefancy" style="display:none;" href="#"></a>
ボタンをクリックすると、次のようになります。
jQuery(document).ready(function() {
jQuery('.button').click(function(){
var i=0;
var prdString="";
var prdString = jQuery.map(jQuery(':checkbox:checked'), function(n, i){
return n.value;
}).join(',');
var url='<?php echo Mage::getUrl('catalog/product_compare/index').'items/'; ?>'+ prdString + '/uenc/';
jQuery('.comparefancy').attr('href', url);//this works all the time
jQuery('.comparefancy').fancybox(); //this will only work the first time
jQuery('.comparefancy').trigger('click');
});
});
いくつかの同様の回答で示唆された beforeLoad メソッドを試しましたが、うまくいきませんでした。
編集:これをさらにテストした後、リンクから表示なしを削除して表示し、次のことを行いました:
- チェックボックスをオンにしてからボタンをクリックしました:最初のファンシーボックスは問題なくロードされます
- 他のチェックボックスをオンにしてからボタンをクリックしました。リンクはhrefを変更しますが、ファンシーはロードされません.
- リンクを手動でクリックすると、fancybox が新しい URL を読み込みます
それで、問題は私のトリガークリック機能ですか?え?