看板 Web_Design 關於我們 聯絡資訊
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://www.ptt.cc/bbs/Web_Design/M.1542703696.A.6E9.html
LoserWon: let ref = (path) => firebase.database().ref(path)11/20 19:51
LoserWon: let path = ref('name'); path.on('value', (s) => {11/20 19:55
LoserWon: someCallback(s.val()) }11/20 20:00
看不懂阿@@ 這什麼碗糕 ※ 編輯: jp956956 (180.217.122.159), 11/20/2018 20:30:00
ccorn: 你是說寫成house('香蕉')嗎? 11/20 22:10
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
ccorn: listeningFirebaseRefs.push(house1Ref); 11/22 23:11
ccorn: listeningFirebaseRefs.push(house2Ref); 11/22 23:11
ccorn: fetchhouse(house1Ref,香蕉div id); 11/22 23:11
ccorn: fetchhouse(house2Ref,蘋果div id); 11/22 23:11
ccorn: 我通靈這兩個功能應該是這樣用的 11/22 23:11
jp956956: 不是 他fetch的功能就只是把ref丟到section裡面 11/23 00:49
jp956956: housection是他顯示的畫面框架 在另外的地方 11/23 00:50
jp956956: 主要是資料來源處houseref 11/23 00:51
jp956956: 如果香蕉跟蘋果都寫的話 會同時抓取兩個資料 你點擊香蕉 11/23 00:53
jp956956: 或是蘋果都會同時顯示兩者資訊 11/23 00:53
jp956956: 所以我才想說設定一個ref來源 用個變數丟香蕉或是蘋果路 11/23 00:54
jp956956: 徑進去 11/23 00:54
jp956956: 我點擊蘋果 把蘋果丟進變數裡面將路徑設定為蘋果 可是做 11/23 00:56
jp956956: 不出來 他顯示函式沒有定義 11/23 00:56
jp956956: 我是在html頁面使用onclick=house(蘋果) 11/23 00:58
jp956956: 不過點了就會說沒有定義 無言 11/23 00:59
ccorn: 你要在html裡定義onclick事件house應該要是全域函式吧 11/23 15:57
jp956956: 是放在全域沒錯哦 我直接用跟變數綁在一起 11/23 20:34
hmj1026: 一樓直接用es6語法給解答了,可以學學箭頭函式 11/30 00:05