您好林具有與AmountToDisplay()
功能我覺得自己像一個模塊的辦法是適當的,但因爲我是新來的OOP我一直有問題的設置,高達有問題從函數返回值
function AmountToDisplay(){
$emitter = $({});
$('#amountItems').change(function(){
var amountchosen = $("#amountItems option:selected").val();
$emitter.trigger('amountUpdate', amountchosen);
});
$emitter.on('amountUpdate', function(e, val){
if(val == 2){
return 2;
}else if(val == 3){
return 3;
}else if(val == 4){
return 4;
}
})
}
返回值問題
我希望能夠像做
if(AmountToDisplay() ==2){
..append 2 items to body
}else if(AmountToDisplay() ==3){
..append 3 items to body
}
console.log(AmountToDisplay())
給出不確定
代替退役的urning和我使用警報方法alert(2)
,它的工作原理。我試圖從選擇框中取出數值,所以我可以從事件中分離出單獨的值,以便我可以在我的代碼other parts in my code in this jsfiddle的其他部分使用該值。在此先感謝您的幫助。
編輯事情是我想能夠使用變化事件的某個地方的金額。所以如果用戶點擊3,我希望能夠獲得該值,這樣即使在用戶輸入時值發生了變化,我也可以執行與更改事件無關的其他功能。發佈/訂閱?
您不能對返回語句使用異步結果。閱讀關於javascript異步執行的更多內容。 (您可能感興趣的一種工具稱爲承諾) – doldt 2015-02-24 07:40:57
(同時考慮您當前的return語句的作用:它不是返回的amountToDisplay函數,而是'amountUpdate'事件的匿名事件處理程序) – doldt 2015-02-24 07:42:45
感謝信息傢伙。我想知道這是否可以以模塊模式的方式完成。例如爲了創建一個私有變量'amountreturned'並且創建一個方法來改變變量並且該變量被返回(public),所以我可以使用'if(amountToDisplay.amountreturned == 2){show 2}'因爲我沒有認爲這是可能的。我認爲所有的答案都將連接變化事件,並將緊密結合。我想要更好的OOP。這是有幫助的。 – 2015-02-24 08:02:51