我想打開fancybox圖像庫(縮略圖)通過點擊與fancybox畫廊沒有真正相關的元素,所以我想要使用triger方法。jQuery與fancybox使用觸發器()導致堆棧溢出
問題是,如果導致堆棧溢出,那麼使用更多的照片(8個圖庫,例如10個圖片/每個gal)。我在這裏找到了很少的答案,例如使用live(),bind(),stopPropagation(),stopImmediatePropagation()等,但似乎沒有任何工作適合我。
HTML是這樣的:
<div id="thumb_1" class="fancy-thumb">
<a class="fancybox-thumb" id="gal-1 rel="gal-1"><img src="./foo/bar.baz"/></a>
<a class="fancybox-thumb" rel="gal-1"><img src="./foo/bar.baz"/></a>
<a class="fancybox-thumb" rel="gal-1"><img src="./foo/bar.baz"/></a>
.........
<a class="fancybox-thumb" rel="gal-1"><img src="./foo/bar.baz"/></a>
<a class="fancybox-thumb" rel="gal-1"><img src="./foo/bar.baz"/></a>
<another html elements absolute positioned such as labels etc>
</div>
.........
<div id="thumb_10" class="fancy-thumb">
<a class="fancybox-thumb" id="gal-10 rel="gal-10"><img src="./foo/bar.baz"/></a>
<a class="fancybox-thumb" rel="gal-10"><img src="./foo/bar.baz"/></a>
<a class="fancybox-thumb" rel="gal-10"><img src="./foo/bar.baz"/></a>
.........
<a class="fancybox-thumb" rel="gal-10"><img src="./foo/bar.baz"/></a>
<a class="fancybox-thumb" rel="gal-10"><img src="./foo/bar.baz"/></a>
<another html elements absolute positioned such as labels etc>
</div>
和JS是這樣的:
// fancybox is initialized in after document ready
$(".fancybox-thumb").fancybox();
// this function should trigger fancybox
this.openGal(e){
var gal_id = $(e.currentTarget).attr("id");
$("#" + gal_id).trigger("click");
return false;
// note that here I've tried almost everything found at stackoverflow
// but nothing seems to work
}
// listeren looks like this
$(".fancy-thumb").click(function(e) {scope.openGal(e);});
請不要張貼這樣的答案,那就是應該這樣做在非標準方式,使用觸發器( )不是一個好主意。我需要使用trigger()。
http://jsfiddle.net/r9SEs/是我製作的一個小提琴,請編輯它更加正確,我在一些虛擬警報中添加了一些幫助,我還發現一些id標籤引號未關閉。 – jett
感謝您的回覆,但我只能看到第一個提示,即點擊後立即觸發,但不是第二個,openGal函數 – Meph
所以我編輯了小提琴,觸發器調用fancythumbs點擊函數導致無限循環,我猜這就是你的代碼中發生的事情。我將爲此添加一個答案並嘗試找到解決方案。你可以發佈更多的代碼/相關性爲什麼你這樣做嗎? – jett