未捕获的TypeError:无法调用null的方法'datepicker'

问题描述:

内联javascript。它应该是一个JS冲突问题因为所有的JavaScripts工作,如果分开。 source page未捕获的TypeError:无法调用null的方法'datepicker'

$(function() { 
    $("input.datepicker").datepicker({ 
     minDate: "today", 
     dateFormat: 'dd/mm/yy' 
    }); 
}); 

$(document).ready(function() { 
    $("input#leaving ").change(function() { 
     var d = j$(this).val(); 
     if (d) $("input#arriving ").datepicker("option ", "minDate ", d); 
    }); 
}); 
+0

您有两个对jQuery的引用。删除第二个参考。 (http://www.rentbudapestapartments.com/wp-includes/js/jquery/jquery.js?ver=1.8.3) – 2013-04-21 13:53:24

+0

它不起作用。我的问题我也使用了使用$变量的原型库。我想覆盖上面这个短代码的$变量。这个怎么做? – Olasz 2013-04-21 16:08:21

+3

你应该看看[jQuery.noConflict()](http://api.jquery.com/jQuery.noConflict/)。 – excentris 2013-04-21 17:11:16

jQuery是包含两次:

首先,在管线36中的源:

36: <script type='text/javascript' src='http://www.rentbudapestapartments.com/wp-includes/js/jquery/jquery.js?ver=1.8.3'></script> 

在源线58第二:

58: <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.js"></script> 

第二是可能从您借用的模板或从WordPress自动获取。如果你有控制权,我会放弃第36行的第一个。

同样在这条线

var d = j$(this).val(); 

是什么j$?这可能应该是$(this).val()

+0

我将j $替换为建议并删除的第36行,但仍然不起作用 – Olasz 2013-04-21 14:30:32

感谢您提供有关脚本调用两次的输入。这可能会导致问题。 我解决了这个CAS由重命名$变量,以避免js冲突

<script> 
var abc = $; 
$(function() { 
abc("input.datepicker").datepicker({minDate:"today", dateFormat: 'dd/mm/yy'}); 
}); 
</script> 
<script type="text/javascript"> 
var abc = $; 
$(document).ready(function() 
{ 
abc("input#leaving").change(function() 
{ 
var d = abc(this).val(); 
if(d)abc("input#arriving").datepicker("option","minDate",d); 
} 
); 
}); 
</script> 

这适用于我!