0

可能有更好的方法来做到这一点,但现在,我需要这样做。

我有一个谷歌地图地理编码的事情,输入字段如下:

<input id="geocomplete" type="text" placeholder="Type in an address" style="width:400px;" value="#url.address#" />
<input id="find" type="button" value="find" />

请注意,地理编码字段是自动填充的。通常用户会在点击“查找”之前手动输入这个值,但是在这个文件中用户正在更新他们的记录,所以我会自动填充地址。

我正在使用以下代码触发对“查找”按钮的单击,该按钮通常会根据输入的地址生成谷歌地图。当用户在点击“查找”之前手动输入地址时,这可以正常工作。

不要被<cfoutput>标签分阶段。这是一个冷融合模板,效果很好。

$(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");
    });
})

这不起作用,似乎什么都没有发生。如果我手动单击“查找”按钮,它可以工作。不确定,但我认为这是因为未手动输入地理编码字段。如果是这样,我该怎么做?

4

3 回答 3

2

你需要把它转过来。当您触发 时click,您的事件尚未创建。

$(function(){
    var address = '<cfoutput>#url.address#</cfoutput>' || "";

    $("#find").click(function(){
        $("#geocomplete").trigger("geocode");
    });

    if(address.length != 0){
        $("#find").trigger("click");
   }
})
于 2013-07-05T10:02:51.513 回答
2

我认为使用 trigger("click") 你不能完美地复制真正的鼠标点击。你为什么不这样做:

if(address.length != 0){

        $("#geocomplete").trigger("geocode");                 
    }
于 2013-07-05T10:07:09.903 回答
0

不确定,但我认为这应该可以解决问题:

$("#find").click();
于 2013-07-05T10:03:24.577 回答