2014-01-23 160 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