我想换一次改变的功能。但是对于变化,不断尝试将检测到变化的交换功能与先前的交易联系起来。举个例子,我提出警告。正如您在警报过程中看到的那样,不断增长。我只是点击了重复这个过程的过程来做我能做什么?。
感谢您的关注。
运行代码的修订版: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>
答案 0 :(得分:0)
我认为您首先要解除绑定先前绑定的事件然后绑定新事件。
赞$.address.unbind('change').change(function(event) {...
而不只是$.address.change(function(event) {
希望这会对你有所帮助。
答案 1 :(得分:0)
每次单击this示例中的链接时,您收到越来越多警报的原因是每次ajax调用成功完成时,每次都会对返回的脚本标记中的代码进行评估单击链接jQuery将处理程序绑定到它可以在页面上找到的每个链接。 由于每次单击链接时,Javascript中的任何事件都可以有多个处理程序,因此附加了处理程序。因此,如果您单击3次以获得3个警报,请单击15次,您将收到15个警报(15个点击处理程序附加到页面上的任何链接)。