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

看板Web_Design作者 (儲備里長伯)時間6年前 (2018/11/20 16:48), 6年前編輯推噓2(2022)
留言24則, 4人參與, 6年前最新討論串1/4 (看更多)
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

11/20 19:51, 6年前 , 1F
let ref = (path) => firebase.database().ref(path)
11/20 19:51, 1F

11/20 19:55, 6年前 , 2F
let path = ref('name'); path.on('value', (s) => {
11/20 19:55, 2F

11/20 20:00, 6年前 , 3F
someCallback(s.val()) }
11/20 20:00, 3F
看不懂阿@@ 這什麼碗糕 ※ 編輯: jp956956 (180.217.122.159), 11/20/2018 20:30:00

11/20 22:10, 6年前 , 4F
你是說寫成house('香蕉')嗎?
11/20 22:10, 4F

11/20 22:11, 6年前 , 5F
如果是我應該會先看定義事件的地方,可是程式碼好像沒有這
11/20 22:11, 5F
不懂定義事件是什麼意思? 因為其他都是畫面顯示設定而已 它抓取資料的設定就只有上面幾行而已 沒錯 我就是想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

11/22 23:11, 6年前 , 6F
listeningFirebaseRefs.push(house1Ref);
11/22 23:11, 6F

11/22 23:11, 6年前 , 7F
listeningFirebaseRefs.push(house2Ref);
11/22 23:11, 7F

11/22 23:11, 6年前 , 8F
fetchhouse(house1Ref,香蕉div id);
11/22 23:11, 8F

11/22 23:11, 6年前 , 9F
fetchhouse(house2Ref,蘋果div id);
11/22 23:11, 9F

11/22 23:11, 6年前 , 10F
我通靈這兩個功能應該是這樣用的
11/22 23:11, 10F

11/23 00:49, 6年前 , 11F
不是 他fetch的功能就只是把ref丟到section裡面
11/23 00:49, 11F

11/23 00:50, 6年前 , 12F
housection是他顯示的畫面框架 在另外的地方
11/23 00:50, 12F

11/23 00:51, 6年前 , 13F
主要是資料來源處houseref
11/23 00:51, 13F

11/23 00:53, 6年前 , 14F
如果香蕉跟蘋果都寫的話 會同時抓取兩個資料 你點擊香蕉
11/23 00:53, 14F

11/23 00:53, 6年前 , 15F
或是蘋果都會同時顯示兩者資訊
11/23 00:53, 15F

11/23 00:54, 6年前 , 16F
所以我才想說設定一個ref來源 用個變數丟香蕉或是蘋果路
11/23 00:54, 16F

11/23 00:54, 6年前 , 17F
徑進去
11/23 00:54, 17F

11/23 00:56, 6年前 , 18F
我點擊蘋果 把蘋果丟進變數裡面將路徑設定為蘋果 可是做
11/23 00:56, 18F

11/23 00:56, 6年前 , 19F
不出來 他顯示函式沒有定義
11/23 00:56, 19F

11/23 00:58, 6年前 , 20F
我是在html頁面使用onclick=house(蘋果)
11/23 00:58, 20F

11/23 00:59, 6年前 , 21F
不過點了就會說沒有定義 無言
11/23 00:59, 21F

11/23 15:57, 6年前 , 22F
你要在html裡定義onclick事件house應該要是全域函式吧
11/23 15:57, 22F

11/23 20:34, 6年前 , 23F
是放在全域沒錯哦 我直接用跟變數綁在一起
11/23 20:34, 23F

11/30 00:05, 6年前 , 24F
一樓直接用es6語法給解答了,可以學學箭頭函式
11/30 00:05, 24F
文章代碼(AID): #1RyyfGRf (Web_Design)
文章代碼(AID): #1RyyfGRf (Web_Design)