可能有更好的方法来做到这一点,但就目前而言,我需要这样做。
我有一个谷歌地图地理编码事情,输入字段如下:
<input id="geocomplete" type="text" placeholder="Type in an address" style="width:400px;" value="#url.address#" />
<input id="find" type="button" value="find" />
请注意,地理编码字段是自动填充的。通常,用户在点击“查找”之前会手动输入此值,但在此文件中,用户正在更新其记录,因此我正在自动填充地址。
我正在使用以下代码触发点击“查找”按钮,该按钮通常会根据输入的地址生成谷歌地图。当用户在点击“查找”之前手动输入地址时,此方法可以正常工作。
不要被<cfoutput>
代码分阶段。这是一个coldfusion模板,工作正常。
$(function(){
var address = '<cfoutput>#url.address#</cfoutput>' || "";
if(address.length != 0){
$("#find").trigger("click"); // doesn't work
/*$("#geocomplete").trigger("geocode");*/ // doesn't work either
}
$("#find").click(function(){
$("#geocomplete").trigger("geocode");
});
})
这不起作用,似乎什么也没发生。如果我手动单击“查找”按钮,则可以正常工作。不确定,但我认为这是因为没有手动输入地理编码字段。如果是这样的话,我该怎么做?
答案 0 :(得分:2)
你需要扭转它。当您触发click
时,您的活动尚未创建。
$(function(){
var address = '<cfoutput>#url.address#</cfoutput>' || "";
$("#find").click(function(){
$("#geocomplete").trigger("geocode");
});
if(address.length != 0){
$("#find").trigger("click");
}
})
答案 1 :(得分:2)
我认为使用触发器(“点击”)您无法完美复制真正的鼠标点击。 Insted为什么不这样做:
if(address.length != 0){
$("#geocomplete").trigger("geocode");
}
答案 2 :(得分:0)
不确定,但我认为这应该可以解决问题:
$("#find").click();