为什么浏览器上的后退按钮会破坏此代码?它的作用与此相反
Why is the back button on the browser breaking this code? It works otherwise
此代码确保在公文包图像页面上单击图像以转到相应的库时,单击的图像显示为第一个图像。它通过比较src属性中的字符并使用.prependTo来实现这一点。当我使用页面上的链接在公文包和图库页面之间来回导航时,一切都很好,但当我使用浏览器上的后退按钮时,一切变得不稳定,有时会反复进行准备。这与点击事件一次又一次地触发有关吗?我不确定。。。
$(document).on('click',"a.project",function(){
$("a.project").on('click', function(event) {
var portfolioLastTwoChars = $(event.target).attr('data-src').slice(-8, -4);
var galleryLastTwoChars = $("img").first().attr('data-src').slice(-8, -4);
if (portfolioLastTwoChars === galleryLastTwoChars) {
return;
} else {
var prePendedImage = $("div").children('img[alt*=' + portfolioLastTwoChars + ']').not(".loaded");
$(prePendedImage).not(':first').remove();
prePendedImage.prependTo("div.image-list");
$('div.image-list > img:not(:first-child)').remove();
}
});
});
$( document ).ready(function() {
$("a.project").eq(0).trigger('click');
});
我相信这可能是由于您正在添加的类。。。因此,我在点击时删除了这些,然后利用jQuery链接的优势简化了代码。
$(document).ready(function() {
$("a.project").on('click', function(event) {
// remove old classes
$('.moveMe').removeClass('moveMe');
$('firstGalleryImage').removeClass('firstGalleryImage');
// get the characters of the clicked element
var portfolioLastTwoChars = $(event.target).attr('data-src').slice(-8, -4);
var galleryLastTwoChars = $("img").first().addClass("firstGalleryImage").attr('data-src').slice(-8, -4);
if (portfolioLastTwoChars === galleryLastTwoChars) {
return;
} else {
$('img[alt*=' + portfolioLastTwoChars + ']').addClass("moveMe");
$("div").children('.moveMe').not(".loaded").prependTo("div.image-list");
}
});
});
现在,对于准备好的文档中的奇数function getImageName()
,不确定您到底在尝试什么;如果你试图重新执行$("a.project").on('click',
的事件处理程序,这实际上可能是你的问题。如果你只是想执行点击处理程序,那是一回事,如果不是,并且你想把它附加到一些新元素上,那么你可能需要以不同的方式附加它,比如:
$(document).on('click',"a.project",function(){...
将$(document)
放在a.project
元素的一些包装器上以提高效率。
然后你可以用从某个地方触发它
$("a.project").trigger('click');
注意,触发器可能需要在其他元素(图像?)上激活,如:(如果没有任何标记,很难猜测)
$("a.project").find('img').eq(0).trigger('click');
单击后退按钮时是否发生跨浏览器加载事件?
后退按钮因扰乱javascript脚本而臭名昭著。有几个链接可能指出缓存是一个问题。
这可能不是一个恰当的答案,但我没有足够的观点来评论SO。
您有$("a.project").click事件之前HTML默认值的示例吗?
相关文章:
- 面向对象的Javascript代码在IE7中不起作用
- 为什么indexOf在这个js代码中不起作用
- d3js文本传输-示例代码不起作用
- 滚动动画代码不起作用
- 为什么此验证代码不起作用
- KeyPress和Keydown在这个特定的代码上不起作用.只有key-up起作用
- 我的jquery代码不起作用.为什么?
- 调试此代码?警报不起作用
- 这个代码在网页中的作用和要求是什么
- I'我不知道为什么我的代码没有'不起作用
- jquery中的PHP代码不起作用
- 谷歌地图代码不起作用
- PHP代码中实现的JavaScript |if语句不起作用
- 为什么这个代码不起作用?我花了很长时间试图弄清楚这一点
- Javascript ajax代码在ibm worklight中不起作用
- 这段jquery代码在angular指令中不起作用
- JavaScript在我下面的代码中不起作用
- JS代码使IE9和Safari冻结,在Opera中不起作用
- 在我的代码中,实体类"卡片展示”;不起作用
- 有人能帮我理解为什么这个JavaScript代码赢得'不起作用,以及我如何解决它