[英]What is wrong with this JS/Jquery method? (Arrays, click-event)
編輯 我已經找出了什么地方出了問題。 如果您想看看是否也可以找到它,請放心。 否則,我會在答案中發布答案。
由於我之前曾問過這個問題,所以我將繼續發布所有代碼,但忽略了我認為對發現問題沒有必要的事情,但回答者需要所有代碼。
以下代碼是按照我的其他一些代碼建模的,這些代碼可以很好地工作,但是在這種方法中它不起作用。 我有一個名為#container
的初始div,它是俄克拉荷馬州地圖的圖像,在該圖像上您可以看到該州的不同部分。 在我的舊代碼中,當用戶單擊細分的特定區域時,它將關閉#container
div並打開該細分的“放大”圖片的圖片的div。 在應該使我的代碼更簡潔的新代碼之后,它將不會關閉#container
(並且我懷疑不會打開新的div)。
我通過在用戶單擊時使用鼠標位置來確定要打開的段( #region
)。 我使用像素坐標,並且已經完成了數學運算以縮放這些坐標,因此屏幕大小無關緊要。
現在,這是新的錯誤代碼:
$(document).ready(function()
{
//Main Oklahoma map
$("#container").click(function(e)
{
var x = event.pageX;
var y = event.pageY;
const scaling_Screen_Max_Pixel_X = 1679;
const scaling_Screen_Max_Pixel_Y = 924;
// Math for the scaling of different sized windows
var currentX = $(document).width();
var currentY = $(document).height();
var xScale = currentX/scaling_Screen_Max_Pixel_X;
var yScale = currentY/scaling_Screen_Max_Pixel_Y;
// Variables for different regions
var zoneX = x/xScale;
var zoneY = y/yScale;
// Arrays containing the min and max x and y values of the rectangular area around a farm
var minX = [47, 593, 593, 958, 600, 744, 852, 1025, 1060, 1159, 1366];
var maxX = [553, 958, 792, 1011, 1124, 1124, 1149, 1598, 1280, 1623, 1551];
var minY = [250, 250, 473, 349, 526, 665, 495, 248, 471, 520, 481];
var maxY = [330, 473, 515, 478, 665, 721, 526, 471, 500, 763, 520];
var regionNumber = [1,2,2,2,3,3,3,4,4,5,5];
/** Loops through the values within the coordinate arrays to
determine if the user clicked within a certain area **/
for (var i = 0; i < minX.length; i++)
{
if(zoneX >= minX[i] && zoneX <= maxX[i] && zoneY >= minY[i] && zoneY <= maxY[i])
{
$("#region"+region[i]).toggle();
$("#container").toggle(); //toggle off
}
}
});
});
minX,maxX等數組中的坐標是按順序排列的,因此,這四個數組中的每個數組中的第一個元素都屬於第一個區域( #region1
)。 我擁有regionNumber
數組的原因是因為某些區域不完全是矩形,所以我對某些區域具有一組以上的“矩形”坐標。
就像我之前說過的,單擊區域不會發生任何反應。 您看到這里有什么問題嗎?
糟糕! 坐在這里盯着我的代碼,我意識到了問題所在。 我忘了說$("#region"+regionNumber[i]).toggle();
而不是$("#region"+region[i]).toggle();
。
現在工作正常。 感謝大家的光臨!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.