2013-04-26 173 views
0

我製作了帶有社交鏈接的圖片的圖片地圖。但是,當我將鏈接更改爲在新窗口中打開時,我丟失了我的OnMouseOver遊標。順便說一句,這全是在JavaScript中。我試圖把它放進去,但它似乎並沒有在任何地方工作。當我點擊圖像時,它們會進入一個新窗口,但光標不會改變,因此用戶不知道它們在鏈接上。代碼如下。OnMouseOver功能不起作用

任何關於如何恢復的想法都會很棒。謝謝!

document.getElementById('topdiv').innerHTML = "<img border=\"0\" style=\"padding-right: 10px;\" src=\"../images/social_hor.png\" usemap=\"#socialmap\"><map name=\"socialmap\"><area shape=\"rect\" coords=\"320,0,365,50\" onClick=\"window.open('https://www.facebook.com/NCHSoftware')\" OnMouseOver='this.style.cursor='pointer';'><area shape=\"rect\" coords=\"375,0,420,50\" onClick=\"window.open('https://plus.google.com/+nchsoftware')\"><area shape=\"rect\" coords=\"425,0,470,50\" onClick=\"window.open('https://twitter.com/nchsoftware')\">" 

回答

1

所以我翻譯這,你在你的問題貼太可怕了線(我想這就是爲什麼人們沒有給你任何問題考慮),我想出了這個例子給你,當然你仍然需要在頁面中正確實現它。

CSS

myImage { 
    padding-right: 10px; 
} 

HTML

<div id="topdiv"></div> 

的Javascript

var topdiv = document.getElementById('topdiv'), 
    map, 
    tempVar; 

function area1() { 
    alert("you clicked in area1"); 
} 

function area2() { 
    alert("you clicked in area2"); 
} 

function area3() { 
    alert("you clicked in area3"); 
} 

function pointerOn(evt) { 
    evt.target.style.cursor = "hand"; 
} 

function pointerOff(evt) { 
    evt.target.style.cursor = "auto"; 
} 

map = document.createElement("map"); 
map.name = "socialmap"; 

tempVar = document.createElement("area"); 
tempVar.shape = "rect"; 
tempVar.coords = "0,0,99,50"; 
tempVar.href = "#"; 
tempVar.addEventListener("click", area1, false); 
tempVar.addEventListener("mouseover", pointerOn, false); 
tempVar.addEventListener("mouseout", pointerOff, false); 
map.appendChild(tempVar); 

tempVar = document.createElement("area"); 
tempVar.shape = "rect"; 
tempVar.coords = "100,0,199,50"; 
tempVar.href = "#"; 
tempVar.addEventListener("click", area2, false); 
tempVar.addEventListener("mouseover", pointerOn, false); 
tempVar.addEventListener("mouseout", pointerOff, false); 
map.appendChild(tempVar); 

tempVar = document.createElement("area"); 
tempVar.shape = "rect"; 
tempVar.coords = "200,0,299,50"; 
tempVar.href = "#"; 
tempVar.addEventListener("click", area3, false); 
tempVar.addEventListener("mouseover", pointerOn, false); 
tempVar.addEventListener("mouseout", pointerOff, false); 
map.appendChild(tempVar); 

topdiv.appendChild(map); 

tempVar = document.createElement("img"); 
tempVar.className = "myImage"; 
tempVar.src = "http://i860.photobucket.com/albums/ab165/ATnightshift/image001.gif"; 
tempVar.useMap = "#socialmap"; 
topdiv.appendChild(tempVar); 

jsfiddle

+0

非常感謝!是的,我是初學者。試圖將它們拼湊在一起是一個緩慢的過程。感謝您的幫助! – user2311979 2013-04-29 16:56:39

+0

希望你不介意我再次竊聽你,我敢肯定,如果我這樣做,它會弄亂你的乾淨的代碼。所以有一個藍色的邊框,鏈接不會在新窗口中打開。所以我基本上回到了我開始的地方,但顯然是一個更有效的方式來寫出來。你介意告訴我如何解決這兩件事?謝謝! – user2311979 2013-04-29 17:40:25

+0

你真的需要打開一個新的問題,包括你的改變的代碼和鏈接給你jfsiddle,然後我們可以看看這個特定的問題。 – Xotic750 2013-04-29 17:55:37