2015-11-18 67 views
0

我一直在嘗試執行以下內容來處理我正在處理的項目。HTML按鈕,將javascript作爲undefined返回。

簡而言之,當我點擊一個按鈕時,我希望能夠添加一個列表項到它的正上方。我已經定義的Java腳本如下:

function CritHandoff(IDNumber, Description, Status) { 
 
    this.IDNumber = IDNumber; 
 
    this.Description = Description; 
 
    this.Status = Status; 
 
} 
 

 
function AddCritHandoff() {  
 
    var result = ''; 
 
    var Temp = new CritHandoff("ID123456", "This is a description", "Active"); 
 
    result += $('#CritHandoff').html("<li>"+Temp.IDNumber+"</li>"); 
 
    return result; 
 
} 
 

 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
    <h1 class="Crit" style="color:red">Critical Handoff:</h1> 
 

 
    <ul id="CritHandoff"> 
 
     
 
    </ul> 
 
    <button type="button" onclick="AddCritHandoff()">Test</button>

當我嘗試執行該頁面加載後,點擊該按鈕,在調試器踢和說,AddCritHandOff()是不確定的。不過,如果我更改代碼這樣

$(function AddCritHandoff() {  
 
    var result = ''; 
 
    var Temp = new CritHandoff("ID123456", "This is a description", "Active"); 
 
    result += $('#CritHandoff').html("<li>"+Temp.IDNumber+"</li>"); 
 
    return result; 
 
});

其結果將是,它執行上出的問題頁面加載。

我的問題是:

這只是一個問題的範圍?雖然它提到的對象是未定義的,但在我看來,它已被定義,而不是在單擊按鈕時。

我該怎麼辦呢?

感謝您的協助!

+0

你能給我們更多你的代碼嗎?你在哪裏定義AddCritHandoff?什麼會導致它被定義爲「在」你點擊按鈕之後? – Macmee

+0

在你的例子中,js代碼不在腳本標籤內。這意味着如果你把你的代碼放入頁面中,它不會被當作js。你可以展示你如何在頁面中包含這段代碼?它是在單獨的文件?如果是這樣 - 鏈接在哪裏?或者它在標籤腳本中內聯?如果是這樣 - 我們可以看到你的頭/身體/ scrtip標籤嗎? – Dmitry

+0

將它移動到單獨的JS文件並添加$(function(){---});圍繞這兩個功能。它不會加載AddCritHandoff函數,因爲它不能識別$('#CritHandoff'),因爲jQuery不是「準備好」的。 –

回答

0

我切換了。 html到。 追加它工作。 - 希望這有助於

function CritHandoff(IDNumber, Description, Status) { 
 
    this.IDNumber = IDNumber; 
 
    this.Description = Description; 
 
    this.Status = Status; 
 
} 
 

 
function AddCritHandoff() { 
 
    var result = ''; 
 
    var Temp = new CritHandoff("ID123456", "This is a description", "Active"); 
 
    result += $('#CritHandoff').append("<li>" + Temp.IDNumber + "</li>"); 
 
    return result; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<h1 class="Crit" style="color:red">Critical Handoff:</h1> 
 

 
<ul id="CritHandoff"> 
 

 
</ul> 
 
<button type="button" onclick="AddCritHandoff()">Test</button>

+0

工程就像一個魅力!謝謝。 – Tmoney1798

+0

歡迎您@Tmoney1798 –

0

您連接具有一個jQuery對象的字符串。我會做這個:

$(function(){ 
function CritHandoff(ID, description, status){ 
    this.ID = ID; 
    this.description = description; 
    this.status = status; 
} 
function addCritHandoff() { 
    var crit = new CritHandoff("ID123456", "This is a description", "Active"), res = crit.ID; 
    $('#CritHandoff').html('<li>'+res+'</li>'); 
    return res; 
} 
// I would have this as external JavaScript and run the onclick here as well after giving your button an id or something 
}); 

我做了一些改變,傳統的原因。