[问题] 怎么设定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