[問題] 怎麼設定var的function函式?

作者: jp956956 (儲備里長伯)   2018-11-20 16:48:14
https://imgur.com/UIr0fyc
大家好
最近用firebase做網頁
就照著她的範本下去做修改
現在想要做出一個點擊圖片可切換內容的效果
比如
點了香蕉的圖片 就會取得香蕉的內容
點了蘋果的圖片 就會取得蘋果的內容
做了一個沒有問題發生
點擊香蕉圖片確實連到的database裡面
節取出來裡面的資料內容
後來再用相同方法去做蘋果的圖片
點擊進去卻發生了香蕉跟蘋果的內容一起出現
我定義的var名稱是不同的還有資料路徑也是不同
但是卻發生兩個同時顯示的事情
我在想是雖然定義了兩個
但是兩個都會同時作用
所以才會不管點擊哪一個圖片
都會取得全部的內容
所以想說應該使用function的方式去解決問題
讓它一次只作用一個函數
var houseRef = firebase.database().ref('housecontain/香蕉');
他一開始是這個變數 可以正常的去抓到資料顯示
後來我改成
var houseRef = function house(name){
return firebase.database().ref('housecontain/' + name);
};
就無法順利作用了
不知道是我沒有把name輸入還是我函式定義錯誤了
卡在這邊不知道要如何輸入它的[email protected]@
listeningFirebaseRefs.push(houseRef);
fetchhouse(houseRef, houseSection);
它顯示的地方是這兩個
我也把houseRef改成 house()
不過一樣無法作用
不知道要怎麼樣才能把name值輸入
讓它可以抓到不同的資料呢?
作者: LoserWon (魯蛇王)   2018-11-20 19:51:00
let ref = (path) => firebase.database().ref(path)let path = ref('name'); path.on('value', (s) => {someCallback(s.val()) }
作者: ccorn (玉米)   2018-11-20 22:10:00
你是說寫成house('香蕉')嗎?如果是我應該會先看定義事件的地方,可是程式碼好像沒有這
作者: jp956956 (儲備里長伯)   2018-11-23 00:49:00
不是 他fetch的功能就只是把ref丟到section裡面housection是他顯示的畫面框架 在另外的地方主要是資料來源處houseref如果香蕉跟蘋果都寫的話 會同時抓取兩個資料 你點擊香蕉或是蘋果都會同時顯示兩者資訊所以我才想說設定一個ref來源 用個變數丟香蕉或是蘋果路徑進去我點擊蘋果 把蘋果丟進變數裡面將路徑設定為蘋果 可是做不出來 他顯示函式沒有定義我是在html頁面使用onclick=house(蘋果)不過點了就會說沒有定義 無言
作者: ccorn (玉米)   2018-11-23 15:57:00
你要在html裡定義onclick事件house應該要是全域函式吧
作者: jp956956 (儲備里長伯)   2018-11-23 20:34:00
是放在全域沒錯哦 我直接用跟變數綁在一起
作者: hmj1026 (黑夢)   2018-11-30 00:05:00
一樓直接用es6語法給解答了,可以學學箭頭函式

Links booklink

Contact Us: admin [ a t ] ucptt.com