Javascript 返回false,带.on(),仍在传播
我在处理这段代码时遇到了麻烦 首先,我有一系列的图片,每个都在一个锚内Javascript 返回false,带.on(),仍在传播,javascript,jquery,events,bind,Javascript,Jquery,Events,Bind,我在处理这段代码时遇到了麻烦 首先,我有一系列的图片,每个都在一个锚内 a>img a>img a>img 我想要的功能是,当您将鼠标滚动到图像上时,它会在锚点上动态添加两个共享按钮: a>.fb+.twitter+img 当你滚下来时,它们会被移除 问题是,我还有一个灯箱,它绑定到a。这意味着,当您单击其中一个共享div时,它会正确显示共享框,但也会触发lightbox 我已经尽了一切努力来阻止这一切preventDefault(),stopPropagation()和返回false。它们都不
a>img
a>img
a>img
我想要的功能是,当您将鼠标滚动到图像上时,它会在锚点上动态添加两个共享按钮:
a>.fb+.twitter+img
当你滚下来时,它们会被移除
问题是,我还有一个灯箱,它绑定到a
。这意味着,当您单击其中一个共享div时,它会正确显示共享框,但也会触发lightbox
我已经尽了一切努力来阻止这一切preventDefault()
,stopPropagation()
和返回false
。它们都不能阻止div单击冒泡到锚并触发lightbox
首先是我的滚动代码App.postImages
只是jQuery图像锚的缓存集合。我使用.add()
也可以添加嵌入式视频容器
rolloverShares: {
divs: $('<div class="image-rollover rollover-facebook">Facebook</div><div class="image-rollover rollover-twitter">Twitter</div>'),
init: function() {
var _this = this;
App.postImages.add('.embed-container', '#content-wrapper').hover(
function() {
_this.divs.prependTo($(this)).show();
},
function() {
$('div', this).remove();
}
);
$(document).on('click', '.rollover-facebook', function() {
Social.facebook.popup();
return false;
});
$(document).on('click', '.rollover-twitter', function() {
Social.twitter.popup();
return false;
});
}
},
我还想我应该把App.postmages
中的内容放进去。就是这个,
$('a img','#content wrapper')。而不是('.share button img')。parent().addClass('post-image')
我没有过多地查看您的代码,但看起来您正在文档中运行return false
。这是传播的最后一站,那么您希望它阻止什么呢?您将事件绑定到文档。当事件到达文档时,lightbox已经发生了。嗯,@KevinB我还要绑定到什么?如果你给我一个答案,我会记下来的。我曾经尝试过,任何时候我使用的不是$(document)
的东西似乎都不起作用。在这种情况下,您必须将其直接绑定到元素以停止lightbox。而且必须在灯箱部分出现之前完成。谢谢,成功了:)
lightbox: function() {
if (isDesktop) {
App.postImages.nivoLightbox({
effect: 'fade',
theme: 'default',
keyboardNav: false,
clickOverlayToClose: true,
errorMessage: 'The requested image cannot be loaded. Please try again later.'
});
$(document).on('click', '.nivo-lightbox-image img', function() {
$(this).closest('.nivo-lightbox-overlay').find('.nivo-lightbox-close').click();
});
} else {
App.postImages.click(function(e) {
e.preventDefault();
});
}
},