【发布时间】:2015-12-29 07:56:16
【问题描述】:
我有一个使用load 和preventDefault 的jquery 函数。以下是我的main.php 页面中的代码,
<script>
$(document).ready(function() {
function ajaxLoad(e) {
e.preventDefault();
var page = $(this).attr('href');
$('#content').load(page, function(){
$("#datepicker").datepicker();
});
$(document).on("click", "a#staff_insert, ajaxLoad);
});
</script>
在我加载的页面staff-add.php 上,我有一个使用日期选择器输入日期的表单,
<input type="text" name="calendar" id="datepicker">
我可以知道如何使日期选择器功能可用,因为当我单击input 字段时,日历不会出现。我是否必须在staff-add.php 上插入日期选择器功能,就像,
$(document).ready(function(){
$("#datepicker").datepicker();
});
感谢您的帮助。
使用新代码更新。
只是为了通知我设法完成了它,但现在的问题是,当我点击不同的链接,然后点击返回到有 datepicker,datepicker 不会出现。只有当我出现时它才会出现 没有去其他链接。我可以知道我做错了什么吗?
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script>
$(document).ready(function() {
function ajaxLoad(e) {
e.preventDefault();
if($(this).attr('id') == 'staff_insert'){
var page = $(this).attr('href');
$('#content').load(page+ ' #calendar', function(){
$("#datepicker").datepicker();
});
} else {
var page = $(this).attr('href');
$('#content').load(page);
}
}
$(document).on("click", "a#staff_info, a#staff_insert", ajaxLoad);
});
</script>
如果我在浏览器上看到,错误是Uncaught TypeError: $(...).datepicker is not a function
更新 - 已解决
我可以通过在代码上插入var j = jQuery.noConflict(); 来解决它。有人可以解释我为什么需要那个吗?仍在寻找原因。谢谢
【问题讨论】:
-
你确定你没有多个#datepicker元素?
-
我敢打赌(除了来自@void 的评论)你必须在 AJAX 调用之后重新初始化 datepicker。
-
文档就绪函数只触发一次....如果您通过 ajax 加载 html,它将不会再次触发文档就绪函数...
-
有没有其他方法或者最好的方法呢?
-
你确定你包含了 jquery ui 文件吗?
标签: jquery jquery-ui datepicker