2010-07-21 51 views
4

下面的代码:jQuery函数没有找到

// also tried function getDeletedDates() 
var getDeletedDates = function() 
{ 
    var s = new Array(); 

    $(".deleted").each(function(i, e) { 
     s.push($(e).attr("data-day")); 
    }); 
}; 

    $(function() 
    { 
     $("#delete_send").click(function() { 
      alert("drin"); 
      $.ajax({ 
        url: "delete.php", 
        type: "POST", 
        data: ({deleteDates : getDeletedDates()}), 
        dataType: "json", 
        success: function(msg){ 
        alert(msg); 
        }, 
        beforeSend: function(){ 
         alert("Lösche folgende Urlaubstage: "+ getDeletedDates().join(", ")); 
        }, 
        error: function(x, s, e) { 
         alert("Fehler: " + s); 
        } 
       } 
      ); 
     }); 
    }); 

但我接触到beforeSend()他总是说“getDeletedDates()未定义” 这是为什么,我宣布全球范围内的功能?

在此先感谢。

回答

5

你的函数不返回任何东西,所以结果将是未定义的。更改该方法以返回数组。

UPDATE

当你做getDeletedDates()其被评估为未定义,因为缺乏回报的结果。这就是为什么getDeletedDates() is undefined是错误消息。

+0

喔谢谢你帮, 但我很困惑,为什么它说:“getDeletedDates()是未定义” 但非常感谢你! – 2010-07-21 07:03:00

+0

所以接受答案。 – Cipi 2010-07-21 07:03:49

+0

查看为什么更新的答案。 – 2010-07-21 08:19:23

2

您正在调用您的函数,但该函数被定义为变量/指针,并且不返回任何内容。以下修改即可工作(未测试):

function getDeletedDates() 
{ 
    var s = new Array(); 

    $(".deleted").each(function(i, e) { 
     s.push($(e).attr("data-day")); 
    }); 

    return s; 
};