我有以下JavaScript代码:
<script>
var test1 = 44.22644865;
var test2 = 17.66116217;
$("#inner_poslovnica_info").append("<div class='sakrij_temp' id='detalji' onclick='PokreniMapu("test1,test2");'></div></div>");
</script>
<script>
function PokreniMapu(sirina, visina){
$("#google_mapa").show();
sirinaGeo = sirina;
visinaGeo = visina;
var myOptions = {zoom:16,center:new google.maps.LatLng(sirinaGeo, visinaGeo),mapTypeId: google.maps.MapTypeId.ROADMAP};
map = new google.maps.Map(document.getElementById("google_mapa"), myOptions);
marker = new google.maps.Marker({
map: map,position: new google.maps.LatLng(sirinaGeo, visinaGeo)});
//infowindow = new google.maps.InfoWindow({
//content:"<b>The Circle</b><br/>2880 Broadway<br/> New York" });
google.maps.event.addListener(marker, "click", function(){infowindow.open(map,marker);});
infowindow.open(map,marker);
}
</script>
这不起作用。我无法使用onclick='PokreniMapu("test1,test2");'
传递变量。
此外,`onclick =&#39; PokreniMapu(&#34; + test1,&#34;&#34; + test2 +&#34;);&#39;不起作用。
价值不是&#34;推&#34;到被调用的函数;因此,地图不会显示出来。
我使用append
功能将HTML内容放入<div>
标记中。可能是什么问题呢?
谢谢!
答案 0 :(得分:0)
此行有错误:
$("#inner_poslovnica_info").append("<div class='sakrij_temp' id='detalji' onclick='PokreniMapu("test1,test2");'></div></div>");
当翻译到达PokreniMapu时(&#34;它认为"
表示你打算关闭字符串,然后它会出错,因为它不了解其余部分。
以这种方式尝试:
$("#inner_poslovnica_info").append("<div class='sakrij_temp' id='detalji' onclick='PokreniMapu("+test1+","+test2+");'></div></div>");
这应该有效,因为test1和test2是数值。如果它们是字符串,你应该逃避一个简单的冒号:
$("#inner_poslovnica_info").append("<div class='sakrij_temp' id='detalji' onclick='PokreniMapu(\'"+test1+"\',\'"+test2+"\');'></div></div>");
答案 1 :(得分:0)
如评论中所述,以下行无效JavaScript:
$("#inner_poslovnica_info").append(
"<div class='sakrij_temp' id='detalji' onclick='PokreniMapu("test1,test2");'></div></div>");
第二个双引号后跟一个变量名称,该名称无效。您还需要删除重复的结束</div>
。
您可以在那里使用连接,并注入+
来获取此信息:
"<div ... onclick='PokreniMapu(" + test1 + "," + test2 + ");'></div>"
或者,如果test1
和test2
变量在click
事件时仍然具有正确的值,则可以将变量嵌入到函数调用中,就像函数调用一样。字符串:
"<div ... onclick='PokreniMapu(test1,test2);'></div>"
但我建议不要将代码添加为字符串。在我看来,最好按以下方式处理click
事件:
$("<div class='sakrij_temp' id='detalji'>")
.appendTo('#inner_poslovnica_info')
.click(function() {
PokreniMapu(test1, test2);
});
或者,使用bind()
:
$("<div class='sakrij_temp' id='detalji'>")
.appendTo('#inner_poslovnica_info')
.click(PokreniMapu.bind(this, test1, test2));
答案 2 :(得分:0)
感谢所有人,我已经尝试了这个并且它有效。
onclick='PokreniMapu("+test1+","+test2+");'
我也会尝试这个。我之前从未使用过bind(),我会试一试。