2014-03-25 128 views
1

当我通过mouseover传递对象时,我没有在函数中获取对象数据,并且地图网页卡住加载。此框文字在地图上有图像框。传递对象在JavaScript中的功能(一个功能到另一个功能)

代码:

function imagefream(Info) { 

//Info having data(Info.Lat,Info.Long....etc) 

    alert(Info.toSource()) //get all data of lat,lon,id..etc 
    var boxText = document.createElement("div"); 
    boxText.innerHTML = '<div id=\"outer\" style=\"overflow: auto; cursor: default; clear: both; position: relative; background-color: rgb(0, 136, 204); border-color: rgb(0, 136, 204); border-style: solid; border-radius: 5px; border-width: 1px; padding: 3px; width: 50px; height: 50px;\" onMouseOver=\"funinfo(' + Info + ');\" >' + 
     '</div>'; 
    return boxText; 
} 

function funinfo(Info) { 
    alert("123"); 
    alert(Info.toSource()); 
} 
+2

你还可以包含事件处理程序代码吗? –

+1

如果您的双引号位于单引号内,则不需要转义双引号。另外,只需将结束div放在同一行而不是尝试连接。你可以在CSS文件中使用你的样式规则,并使用id而不是直接添加它。 – Anthony

+0

谢谢..删除引用其工作的感谢... – ravi

回答

2

您串联的字符串的对象 - >'...onMouseOver=\" funinfo('+Info+');\"...'

它会产生类似的东西 - >'onMouseOver="funinfo([object Object]);"'

看来你想要做什么的就是调用函数funinfo传递对象Info,这就是你在onMouseOver属性中需要的。你的代码应该看起来像 - >'onMouseOver=\" funinfo(Info);\"'。不需要连接对象。

请注意,信息应该位于您的窗口或全局空间中。

+0

'....... onMouseOver = \“funinfo(Info); \”>'<---我试过这样,但没有用我没有得到戒备(“123”)当光标放在imagefream上时(地图上的图像)。请帮忙。 – ravi

+0

我给了var imageinfo = Info; '... onMouseOver = \“funinfo(imageinfo); \”>';我也尝试过这样。给予全球var, – ravi

+0

,其工作表示感谢。 – ravi

1

这是您的问题的解决方案。注意我宣布命名空间

var myNamespace = myNamespace || {}; 
$(document).ready(function(){ 
    myNamespace.info = {Lat: 42.123456789, Lng: -41.123456789}; // some object 
    myNamespace.funinfo = function (Info) { 
    console.log("logging from funinfo: " + Info.Lat + "," + Info.Lng); 
} 
    myNamespace.imageFrame= function(Info){ 
    myNamespace.info = Info; 
    console.log("logging from imageFrame: " + myNamespace.info.Lat + "," + myNamespace.info.Lng); 
    var boxText = document.createElement("div"); 
    boxText.innerHTML = '<div id=\"outer\" style=\"overflow: auto; cursor: default; clear: both; position: relative; background-color: rgb(0, 136, 204); border-color: rgb(0, 136, 204); border-style: solid; border-radius: 5px; border-width: 1px; padding: 3px; width: 50px; height: 50px;\"' + 
    'onMouseOver=\"myNamespace.funinfo(myNamespace.info);\" >' + 
     'MyDIb</div>'; 
    return boxText; 
} 
    var d = myNamespace.imageFrame(myNamespace.info); 
    document.body.appendChild(d); 

});