Javascript jquery.address:$.address.change()在使用$.address.queryString()时运行两次

Javascript jquery.address:$.address.change()在使用$.address.queryString()时运行两次,javascript,jquery,jquery-address,Javascript,Jquery,Jquery Address,使用$.address.queryString()时,$.address.change()运行两次 如果您的url为: www.example.com 我运行以下代码: $.address.change(function(event) { if(event.parameters['user_id']) { alert(event.parameters['user_id']) } }); $.address.queryString('

使用$.address.queryString()时,$.address.change()运行两次

如果您的url为:

www.example.com
我运行以下代码:

$.address.change(function(event)
{    
    if(event.parameters['user_id'])
    {
        alert(event.parameters['user_id'])
    }       
});
$.address.queryString('user_id=902715614&user_name=James');

它会提醒用户两次


然而,它不应该只发出一次警报吗?

它可能在页面加载时发出警报(地址更改…对吗?),然后在您更改地址时再次发出警报。

没有更多上下文,很难判断这是否有意义。。。但是,您应该在DOM准备就绪后调用函数,如下所示:

$(document).ready(function () {
  $.address.queryString('user_id=902715614&user_name=James');
});

是的,我正在使用$(document).ready()。我将在我的问题中补充这一点,以澄清问题。这似乎是最可能的解释。如果文档这么说会很好,但是它们非常模糊。是的,$.address.change()确实在页面加载时运行,这就是为什么我有一个if语句来检查url中是否有“user\u id”参数。如果确实存在,则应发出警报。但是,当我第一次加载页面时,“user\u id”参数仅在脚本运行之后才存在于url中。您应该向event.parameters['user\u id']发出警报以查看您得到了什么。我注意到,如果我将$.address.queryString()放在$(document).ready()函数之外,它只加载一次。这很有意义,因为$(document).ready()会在加载页面之前加载所有内容。因此,当页面实际加载时。url已设置为[user\u id=902715614&user\u name=James]