我正在创建一个Web应用程序的问题。我有一个函数,可以检查用户是否输入了某些数据,然后才能使用我的Web应用程序的某个部分。我一直在将我的函数绑定到页面创建事件。
$(document).on('pagecreate', function(){
checkOpenCalls();
alert('page create event firing');
});
如果在浏览页面之前用户没有输入函数的参数,checkOpenCalls函数会打开一个对话框,让用户输入数据。问题是,如果用户意外浏览到此页面并在对话框上点击取消。该对话框再次打开,用户陷入无限循环。
如果通过AJAX调用页面但是在关闭对话框时没有继续触发,会加载我的函数的事件是什么?我尝试了pageinit
和pageshow
个事件,但每次显示页面时都会触发。
答案 0 :(得分:1)
您正在使用正确的页面事件,但问题是您正在为每个可能的页面和对话框使用它(因为对话框只是页面的另一个版本)。
您需要做的是将此事件仅限绑定到某个页面。例如,如果这是您的页面:
<div data-role="page" id="index">
</div>
只有在第一次创建此页面时,您才会使用此javascript执行:
$(document).on('pagecreate', '#index',function(){
checkOpenCalls();
alert('page create event firing');
});
如果你看一下,因为我的网页上有一个ID #index,这个 pagecreate
事件仅绑定到它,没有别的。