页面加载时如何使用datepicker

时间:2015-12-29 07:56:16

标签: jquery jquery-ui datepicker

我有一个使用loadpreventDefault的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">

我可以知道如何使datepicker功能可用,因为当我点击input字段时,日历将不会出现。我是否必须在staff-add.php上插入datepicker函数,以及

$(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();来解决它。有人可以解释我为什么需要它?还在寻找原因。感谢

1 个答案:

答案 0 :(得分:0)

由于您在本地开发,我认为您正在使用文件协议(如file://)。

目前,您正在引用您的脚本/ css包含无协议:

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>

在这种情况下使用相对URI,基本上它允许浏览器根据您的页面使用的协议确定是使用http://还是https://。

您正在使用文件协议,因此页面尝试加载:

<link rel="stylesheet" href="file://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="file://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>

它不起作用,所以设置协议如:

<link rel="stylesheet" href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>