我对jquery和jquery mobile相对较新。我有一个新的移动网站,使用ajax加载页面。问题当然是它不会在每个页面上加载脚本,因此脚本必须通过菜单进入主页。
我使用pagecreate来监听页面,然后为它加载脚本。
我遇到的问题是,在一个页面上,我有一个调用函数的提交按钮。 pagecreate完成其工作并加载脚本,但是当我单击提交按钮时,函数不会被调用。这个函数本身就可以,所以问题一定是你不能把一个函数放到页面创建中。
我不确定正确的语法是什么。
$('#calendar').live('pagecreate',function(event){
function makeUpDates(){
// concantenate values to date_start and date_end hidden inputs
var dateString = document.getElementById('date').value,
date = new Date(dateString);
document.getElementById('date_start').value = date.getFullYear() + '-' + (date.getMonth()+1) + '-' + date.getDate();
var numDays = document.getElementById('slider').value;
date.setDate(date.getDate() + parseInt(numDays));
var dateEnd = date.getFullYear() + '-' + (date.getMonth()+1) + '-' + date.getDate();
document.getElementById('date_end').value = dateEnd;
}
});
答案 0 :(得分:1)
我不确定我是否会得到它,但为什么要在函数中定义一个函数?那样它永远不会被调用,或者你想稍后调用它?
当你想要在pagecreate上执行时,你可以简单地执行:
$('#calendar').live('pagecreate',function(event){
// concantenate values to date_start and date_end hidden inputs
var dateString = document.getElementById('date').value,
date = new Date(dateString);
document.getElementById('date_start').value = date.getFullYear() + '-' + (date.getMonth()+1) + '-' + date.getDate();
var numDays = document.getElementById('slider').value;
date.setDate(date.getDate() + parseInt(numDays));
var dateEnd = date.getFullYear() + '-' + (date.getMonth()+1) + '-' + date.getDate();
});
答案 1 :(得分:1)
更新:
这会有效吗
HTML(包含id ='日历'的页面),已删除onclick并添加了ID
<button type="submit" name="continue" id="continue" data-icon="arrow-r" data-iconpos="right">Continue</button>
JS
$('#calendar').live('pagecreate',function(event){
// Call function when live event happens
$('#continue').click(function() {
makeUpDates();
});
});
// Move function outside live event
function makeUpDates() {
// concantenate values to date_start and date_end hidden inputs
var dateString = document.getElementById('date').value,
date = new Date(dateString);
document.getElementById('date_start').value = date.getFullYear() + '-' + (date.getMonth()+1) + '-' + date.getDate();
var numDays = document.getElementById('slider').value;
date.setDate(date.getDate() + parseInt(numDays));
var dateEnd = date.getFullYear() + '-' + (date.getMonth()+1) + '-' + date.getDate();
document.getElementById('date_end').value = dateEnd;
}
我不确定你是否需要直播活动,你也可以试试这个
//$('#calendar').live('pagecreate',function(event){
// Call function when live event happens
$('#continue').click(function() {
makeUpDates();
});
//});