作者jp956956 (儲備里長伯)
看板Web_Design
標題[問題] 怎麼設定var的function函式?
時間Tue Nov 20 16:48:14 2018
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輸入還是我函式定義錯誤了
卡在這邊不知道要如何輸入它的name@@
listeningFirebaseRefs.push(houseRef);
fetchhouse(houseRef, houseSection);
它顯示的地方是這兩個
我也把houseRef改成 house()
不過一樣無法作用
不知道要怎麼樣才能把name值輸入
讓它可以抓到不同的資料呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.122.159
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Web_Design/M.1542703696.A.6E9.html
1F:→ LoserWon: let ref = (path) => firebase.database().ref(path)11/20 19:51
2F:→ LoserWon: let path = ref('name'); path.on('value', (s) => {11/20 19:55
3F:推 LoserWon: someCallback(s.val()) }11/20 20:00
看不懂阿@@ 這什麼碗糕
※ 編輯: jp956956 (180.217.122.159), 11/20/2018 20:30:00
4F:→ ccorn: 你是說寫成house('香蕉')嗎? 11/20 22:10
5F:→ ccorn: 如果是我應該會先看定義事件的地方,可是程式碼好像沒有這 11/20 22:11
不懂定義事件是什麼意思? 因為其他都是畫面顯示設定而已
它抓取資料的設定就只有上面幾行而已
沒錯 我就是想house(香蕉) 然後路徑就可以變成
var houseRef = firebase.database().ref('housecontain/香蕉');
house(蘋果) 就會變成
var houseRef = firebase.database().ref('housecontain/蘋果');
一次只抓取一個資料區
不然兩個都留著 會變成兩個資料都顯示出來
不過我這樣的程式碼路徑好像會錯誤 沒辦法達到我要的效果
而且我是用<div id> 裡面再夾帶圖片的方式去做點擊功能
所以我不知道怎麼去達到house('水果')的一個效果@@
※ 編輯: jp956956 (218.166.28.167), 11/21/2018 00:14:52
6F:→ ccorn: listeningFirebaseRefs.push(house1Ref); 11/22 23:11
7F:→ ccorn: listeningFirebaseRefs.push(house2Ref); 11/22 23:11
8F:→ ccorn: fetchhouse(house1Ref,香蕉div id); 11/22 23:11
9F:→ ccorn: fetchhouse(house2Ref,蘋果div id); 11/22 23:11
10F:→ ccorn: 我通靈這兩個功能應該是這樣用的 11/22 23:11
11F:→ jp956956: 不是 他fetch的功能就只是把ref丟到section裡面 11/23 00:49
12F:→ jp956956: housection是他顯示的畫面框架 在另外的地方 11/23 00:50
13F:→ jp956956: 主要是資料來源處houseref 11/23 00:51
14F:→ jp956956: 如果香蕉跟蘋果都寫的話 會同時抓取兩個資料 你點擊香蕉 11/23 00:53
15F:→ jp956956: 或是蘋果都會同時顯示兩者資訊 11/23 00:53
16F:→ jp956956: 所以我才想說設定一個ref來源 用個變數丟香蕉或是蘋果路 11/23 00:54
17F:→ jp956956: 徑進去 11/23 00:54
18F:→ jp956956: 我點擊蘋果 把蘋果丟進變數裡面將路徑設定為蘋果 可是做 11/23 00:56
19F:→ jp956956: 不出來 他顯示函式沒有定義 11/23 00:56
20F:→ jp956956: 我是在html頁面使用onclick=house(蘋果) 11/23 00:58
21F:→ jp956956: 不過點了就會說沒有定義 無言 11/23 00:59
22F:→ ccorn: 你要在html裡定義onclick事件house應該要是全域函式吧 11/23 15:57
23F:→ jp956956: 是放在全域沒錯哦 我直接用跟變數綁在一起 11/23 20:34
24F:推 hmj1026: 一樓直接用es6語法給解答了,可以學學箭頭函式 11/30 00:05