jQuery live()。。。必须点击两次才能激活链接?
我有以下代码,很简单:jQuery live()。。。必须点击两次才能激活链接?,jquery,click,live,Jquery,Click,Live,我有以下代码,很简单: $(function() { $('a.add-photos-link').live('click', function(e) { $(this).colorbox({ overlayClose: false, onComplete: function() { $('#add_photos').submit(function(e) { // more stuff to do e.p
$(function() {
$('a.add-photos-link').live('click', function(e) {
$(this).colorbox({
overlayClose: false,
onComplete: function() {
$('#add_photos').submit(function(e) {
// more stuff to do
e.preventDefault();
});
}
});
e.preventDefault();
});
});
然而,这似乎只有在点击链接两次后才起作用。这些链接将动态添加到页面中(a.add-photos-link
)
为什么会发生这种情况?我可以做些什么来修复它,使它在第一次单击后触发?您当前的代码只为链接创建一个颜色框。它不会打开颜色框,这就是为什么您需要单击链接两次:一次创建它,另一次打开它 创建颜色框时,您可以使用
打开
选项()立即打开它,如下所示:
$(this).colorbox({
open: true,
overlayClose: false,
onComplete: function() {
// ...
}
});
您的JavaScript在页面上的什么位置?它是在构建DOM树之后执行的吗?我有一个类似的问题。我在一个页面上有一个图像,我在图像中添加了一个onclick事件。我指定了open:true,但它仍然需要两次单击。@MarcWilson用您的详细信息创建一个新问题。我发现它-jQuery发布了一个新版本,其中删除了“live”函数-有一个新版本的colorbox与最新的jQuery一起使用。3年后,这个答案仍然可以节省人们的时间。