我一直在努力增强此网页,并且我相信当您看到以下代码时您会大笑,但我一直在教自己的JavaScript,所以我对自己能够走多远感到有些自豪。问题在于,一旦你开始点击地图上的几个城市,我所做的只是一点小小的错误,而我还不够精明。另外,我敢肯定,我已经采取了漫长的风景线路,让代码发挥作用,所以我正在转向全知的社区,希望有人能够教这个人如何编码。需要帮助修复bug并优化javascript代码
你可以看到完整的发展在这里:http://buhmanphotography.com/map/
这里是错误我看到的视频:http://buhmanphotography.com/map/buggyCode/
$(document).ready(function() {
// Show the Map Container
$('.locBox a').click(function (e) {
// Initialize info for clicked location
var initLocInfo = $(this).attr("rel") + "Ctn";
// Show Initial Information
$('#' + initLocInfo).show();
$('#' + initLocInfo).css('opacity','1');
$('#' + initLocInfo).addClass('modActive');
// Initialize Button State on Map
var initLocBtn = $(this).attr("rel") + "Btn";
$('#' + initLocBtn).css('backgroundPosition','top');
// Open Map Box
$("#mapModalCtn").show();
$("#mapModalCtn").animate({
opacity: 1
}, 500);
e.preventDefault();
});
// Hide the Map Container
$('#modalTitle a').click(function (e) {
$("#mapModalCtn").animate({
opacity: 0
}, 500, function() {
$("#mapModalCtn").hide();
$('#modLeftCol > div').removeClass('modActive');
$('#modLeftCol > div').hide();
$('#modRightCol a').css('backgroundPosition','bottom');
});
e.preventDefault();
});
// Show the info for the selected Location on the Map
$('#modRightCol a').click(function (e) {
e.preventDefault();
var locInfo = $(this).attr("rel") + "Ctn";
var locBtn = $(this).attr("rel") + "Btn";
// Change Map Location Button State
$('#modRightCol a').css('backgroundPosition','bottom');
$(this).css('backgroundPosition','top');
// Hide currently visible information
if ($('#modLeftCol > div').hasClass('modActive')) {
$("#modLeftCol > div").animate({
opacity: 0
}, 500, function(){
$("#modLeftCol > div").hide();
$("#modLeftCol > div").removeClass('modActive');
//Show information related to location clicked
$('#' + locInfo).show();
$('#' + locInfo).animate({
opacity: 1
}, 500, function(){
$('#' + locInfo).addClass('modActive');
});
});
}
});
});
请参阅[我关于缓存jQuery选择器的问题](http://stackoverflow.com/questions/5724400/does-using-this-instead-of-this-provide-a-performance-enhancement)。 – 2012-08-12 02:02:05
这可能更适合http://codereview.stackexchange。com /,但同时(Jared的评论)可以_chain_ jQuery方法:'$('#'+ initLocInfo).show().css('opacity','1')。addClass('modActive' );'(更高效地重复选择相同的元素)。关于你的评论“我所做的是一个小小的错误” - 你需要更具体。 – nnnnnn 2012-08-12 02:08:59
感谢您的链接。我不知道有一个特殊的评论区。当我说出它的越野车时,在地图上的不同城市点击几下后,它会做出这种奇怪的事情,左侧的标题在前面的选择和我刚刚做出的选择之间来回闪烁。我想知道这是否是一个计时问题 - 如果我在前面的脚本完成之前打了另一个城市或类似的东西。我在Safari和Firefox中都能看到它。 – lbweb 2012-08-12 04:09:19