我正在使用 jQuery Mobile 创建一个网站,其中包含不同 html 文件中的多个页面。在一个文件中,我有这个 DIV:
<div data-role="page" id="page3" style="overflow-x: hidden !important;">
<div data-role="content">...
</div>
</div>
我在第一页的标题中定义了一个委托:
$(document).delegate('[id="page3"]', 'pageshow', function () {
alert('page3');
};
问题是该委托在第一次加载页面时被触发,第二次被触发两次,等等......每次您访问该页面时,委托被触发一次。
过程是这样的:
访问第1页->第3页(一个警报)->第1页->第3页(两个警报)....
$('#page3')
我试图检查在萤火虫控制台上是否有多个具有该 ID 的元素正在执行,但我只得到一个项目。
我不确定我还能检查什么来调试问题。
编辑:
page1.html
<html>
<head>
<script type="text/javascript" src="assets/js/delegation.js"></script>
<script type="text/javascript">
delegation.delegate3()
</script>
</head>
<body> ....
page3.html
<html>
<head>
<script type="text/javascript" src="assets/js/delegation.js"></script>
</head>
<body>
<div data-role="page" id="page3" style="overflow-x: hidden !important;">
<div data-role="content">...
</div>
</div>....
委托.js
var delegation = (function () {
return {
delegate3:function delegate3() {
$(document).delegate('[id="page3"]', 'pageshow', function () {
alert('page3');
};
}
})();