2010-07-21 53 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; 
};