作者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/cn.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