我一直在努力增強此網頁,並且我相信當您看到以下代碼時您會大笑,但我一直在教自己的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