2014-01-23 68 views
0

我以前有類似的問題,但是,我給出的代碼是在不同的情況下。點擊文字不顯示提醒

這是我現在有:http://codepen.io/anon/pen/hHbku

如果您在圖像上單擊,然後點擊文本"CLICKING THIS SHOULD SHOW THE ALERT",它應該顯示我已經告訴它的JS代碼顯示警報,但是這不是。爲什麼是這樣?

HTML:

<html> 
    <body> 

    <a href="http://lokeshdhakar.com/projects/lightbox2/img/demopage/image-3.jpg" data-lightbox="example-set" title="CLICKING THIS SHOULD SHOW THE ALERT."><img class="example-image" src="http://lokeshdhakar.com/projects/lightbox2/img/demopage/thumb-3.jpg" width="150" height="150"/></a> 

    <script src="http://code.jquery.com/jquery-2.0.3.min.js"></script> 
    <script src="http://pastebin.com/raw.php?i=udGNfeN8"></script> 
    </body> 
</html> 

JS:

$(document).on("click", ".lb-caption" function() { 
    alert("CLICKED."); 
}); 

回答

2

燈箱腳本綁定點擊處理,以燈箱的元素。這些處理程序會停止事件的傳播,因此它永遠不會到達document,並且您的處理程序不會被調用。

+0

這是什麼一般修復? – Bagwell

+1

一個選項是在燈箱打開後直接將點擊處理程序添加到元素。 –

+0

好吧,我通過做你的建議得到了最初的問題,但是如果我在'.lb-caption'中添加了一個鏈接,你必須單擊該鏈接怎麼辦?我編輯了lightbox腳本(點擊這裏)(http://pastebin.com/raw.php?i=jK1PfQQC)),並添加了這個$​​ lightbox.find('。lb-caption a')。on('點擊',function(){alert(「Clicked link。」);});',但由於某些原因,這不起作用(儘管它只用'.lb-caption')。 [這是新的codepen](http://codepen.io/anon/pen/rjAtz)。 – Bagwell

-1

有一個逗號".lb-caption"後失蹤,並作爲賈森·P說,這也不會工作,你必須直接綁定到元素。

$(".lb-caption").on("click",function(){ 
    alert("CLICKED."); 
}); 

看到here

0

說實話,我也不太清楚它是如何工作的,但它的工作原理:)

我增加了一個功能

this.$lightbox.find('.lb-caption').on('click', function() { 
    alert("CLICKED."); 
    return false; 
    }); 

這個功能。

this.$overlay.hide().on('click', function() { 
    //_this.end(); 
    alert("..."); 
    return false; 
    }); 

也許會調整任何其他功能,這是不是太需要。

see here