Jquery重复问题

时间:2011-08-29 10:00:06

标签: jquery

我想换一次改变的功能。但是对于变化,不断尝试将检测到变化的交换功能与先前的交易联系起来。举个例子,我提出警告。正如您在警报过程中看到的那样,不断增长。我只是点击了重复这个过程的过程来做我能做什么?。

感谢您的关注。

运行代码的修订版:http://www.smyrnart.com/deeplinking/index.html

我的代码;

的index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="http://www.asual.com/jquery/address/samples/express/jquery.address-1.3.min.js"></script>
<script type="text/javascript">
        $('a').address(function() {return $(this).attr('href').replace(/^#/, '');});
        $.address.change(function(event) {

            var url="";
            if      (event.value=='/index1')    {url = "index1.html"}
            else if (event.value=='/index2')    {url = "index2.html"}

            if (url!==""){
                $.ajax({url : url,success : function(data){$("#content").html(data);}});
            }
        });
</script>

</head>

<body>
<a title="" href="#/index1/">index1</a>  |  <a title="" href="#/index2/">index2</a>
<div id="content" style="margin-top:50px;"></div>
</body>

</html>

Index1.html

<strong>in order;</strong><br/><br/>

index1<br/>
index2<br/>
index1<br/>
index2<br/><br/>

alert: problem repeat

Index2.html

<script type="text/javascript">
$.address.bind('change', function(e) {
//I used as examples only. anything else to do here, but should be resolved in this process of repetition.
    alert('problem')

});
</script>

<div>
$.address.bind('change', function(e) {
    alert('problem')
});
<strong>Go now #index1, at this #index2</strong>
</div>

2 个答案:

答案 0 :(得分:0)

我认为您首先要解除绑定先前绑定的事件然后绑定新事件。

$.address.unbind('change').change(function(event) {... 而不只是$.address.change(function(event) {

希望这会对你有所帮助。

答案 1 :(得分:0)

每次单击this示例中的链接时,您收到越来越多警报的原因是每次ajax调用成功完成时,每次都会对返回的脚本标记中的代码进行评估单击链接jQuery将处理程序绑定到它可以在页面上找到的每个链接。 由于每次单击链接时,Javascript中的任何事件都可以有多个处理程序,因此附加了处理程序。因此,如果您单击3次以获得3个警报,请单击15次,您将收到15个警报(15个点击处理程序附加到页面上的任何链接)。