我在我的一个组件中使用了一小段javascript。在我的开发服务器上它运行正常但是当我把它放在网上时它给了我错误:
Uncaught TypeError: undefined is not a function
第一行出现此错误:
jQuery(".rdbookings_interval_grid").live('click', function() {
也许有人对我有所了解?
jQuery.noConflict();
jQuery(".rdbookings_interval_grid").live('click', function() {
// Get the id of the clicked item:
var interval = jQuery(this).attr("id");
// Get the active date:
var date= jQuery( "#wish_date" ).val();
var service = jQuery( "#service" ).val();
// Create AJAX data:
var data = 'date='+date+'&service='+service+'&interval='+interval;
jQuery.ajax({
url: "index.php?option=com_rdbookings&controller=jquery&task=bookInterval&format=raw",
//POST method is used
type: "POST",
//pass the data
data: data,
// data type = json
dataType: 'json',
//Do not cache the page
cache: false,
//success
beforeSend: function() {
jQuery( "#loader_date_picker" ).show();
jQuery( "#msg" ).hide();
},
success: function (html) {
// We're done, show data
jQuery( "#loader_date_picker" ).hide();
if(html.status != 666) {
// Update Reservations:
jQuery( '#reservations' ).html(html.msg);
// Update cart
updateCart();
// Update cart
updateGrid();
}else{
jQuery( "#msg" ).html(html.msg);
jQuery( "#msg" ).show();
}
},
});
});
答案 0 :(得分:0)
当您尝试在该对象的方法不存在时调用对象上的方法时,通常会遇到错误消息Uncaught TypeError: undefined is not a function
。这是因为Javascript方法调用实际上只是a)访问具有要调用的方法名称的对象的属性,并且b)假设返回的值是一个函数并使用您认为需要的任何参数调用它。如果事实证明该值不是函数或未定义,则会出现错误。
正如评论者所指出的那样,将live
更改为on
应该可以解决它(即您一直在调用jQuery对象的live
方法which doesn't have that method),但如果它& #39; s仍在发生检查与错误消息关联的行号。您还应该考虑您的流程,以确保您的开发环境始终反映您的代码可能部署的jQuery(和其他库)的版本,以避免将来出现类似问题。