微信小程序——点击列表里某元素,实现跳转+显示点击元素的内容

2023-10-26

最近刚刚学微信小程序没多久,碰到了很多问题,这也是我碰到的一个问题。

思路:①跳转——组件绑定一个点击事件,在事件里面实现跳转

           ②显示点击元素的内容——获取点击元素在列表里面的id,但是我发现我获取到的id是空的,啥也没有,呜呜呜。可怜的小白,都不知道发生了什么。就像下图

 一、id的获取解决方法

wxml是这样的:

<view
 wx:for-items="{{em_jobs}}"
 wx:key="{{index}}"
 wx:if="{{b1}}"
 class="total_item"
 bind:tap="bind_publish"
>
	<view class="item_class" wx:if="{{b1}}">
		<text wx:if="{{b1}}">{{item.input_position}}</text>
		<view class="text_class">发布时间:\n\t\n\t {{item.strdate}}</view>
		<view class="big_class">
			<view class="big_class">
				<text decode="true">投简人数:&nbsp;{{xx}}&nbsp;&nbsp;&nbsp;</text>
				<text decode="true">已招人数:&nbsp;{{YY}}&nbsp;&nbsp;&nbsp;</text>
				<text decode="true">浏览次数:&nbsp;{{ZZ}}&nbsp;&nbsp;&nbsp;</text>
			</view>
		</view>
	</view>
</view>

 wxss:

.total_item{
   display: flex;
   flex-direction: row;
   justify-content: center;
 }
 .item_class{
   width: 90%;
   height: 200rpx;
   background-color: #F5F5F5;
   margin-top: 10rpx;
   margin-bottom: 10rpx;
   border-radius: 5px;
   padding-left: 20rpx;
   padding-top: 20rpx;
   padding-right: 20rpx;
 }
 .text_class{
   top:150rpx;
   font-size:xx-small;
 }
 
 .big_class{
   margin-top: 30rpx;
   margin-bottom: 20rpx;
   font-size: x-small;
   display: flex;
   flex-direction: row;
   justify-content: right;
 }

js(也就是点击列表里面某个具体的元素时的方法):

 bind_publish(e){
   console.log(e);
  },

当我们点击列表的某个具体元素时,打印的e却是这样的

 分析id为什么没有获取到?答:我目前也不知道,呜呜呜。菜鸟的辛酸。

解决方法:我们给列表的每一个元素在创建一个id,可以命名为id,idx,idy等等名字。那是如何实现的呢?这个非常简单。就是在我们原来的wxml里面加了一点点东西

现在的wxml:

<view
 wx:for-items="{{em_jobs}}"
 wx:key="{{index}}"
 wx:if="{{b1}}"
 data-id="{{index}}"<!--这个就是我们手动给每一个元素添加的id-->
 class="total_item"
 bind:tap="bind_publish"
>
	<view class="item_class" wx:if="{{b1}}">
		<text wx:if="{{b1}}">{{item.input_position}}</text>
		<view class="text_class">发布时间:\n\t\n\t {{item.strdate}}</view>
		<view class="big_class">
			<view class="big_class">
				<text decode="true">投简人数:&nbsp;{{xx}}&nbsp;&nbsp;&nbsp;</text>
				<text decode="true">已招人数:&nbsp;{{YY}}&nbsp;&nbsp;&nbsp;</text>
				<text decode="true">浏览次数:&nbsp;{{ZZ}}&nbsp;&nbsp;&nbsp;</text>
			</view>
		</view>
	</view>
</view>

与前面不同的就是这个里面多了一行data-id="{{index}}",而它的意思是给列表的每一个元素增加一个字段id,同时它的id等于该元素在列表的id。就这样我们再次点击列表里面的某个元素,就可以获取到它的id了。(wxss、js都未发生改变)

点击列表里面某个元素后

 3142312

二、跳转问题的解决

就这样我们就在上面就获取到了我们点击那个元素的id了,那么接下来就是跳转到我们所点击元素的详细页面了。

实现方法:①页面还是一个普通的页面只是数据的不同罢了。

解决过程:①页面的跳转——wx.navigateTo方法    ②页面的显示内容——在跳转的时候根据我们获得的id获取到该元素的_id,将_id传递到我们要跳转到的页面 ③根据跳转携带的_id数据在数据库中进行条件查询

js(跳转前的页面js)

bind_publish(e){
    //点击某个具体的元素,获取到他在数组中的下标,根据下标,将该元素_id值传递给下一个页面
    console.log(e.currentTarget.dataset.id);
    var that = this
    that.setData({
      ids:that.data.em_jobs[e.currentTarget.dataset.id]._id //我们所点击元素的_id
    })

    wx.navigateTo({
      url: '../../employer/recruiting/recruiting?ids='+that.data.ids,//将点击元素的_id传递到我们要跳转的页面
    })
   console.log(e);
  },

js(跳转后的页面js)

onLoad: function (options) {
    var that = this
    //获取该记录的id
    that.setData({
      id: options.ids,//跳转携带的数据
    })
    //根据跳转传递过来的页面数据,在数据库里面实现查找,将找到的数据在页面进行显示
    db.collection('publish_job').where({
      _id: options.ids,
    })
    .get({
      success :(res)=>{
        console.log(res.data);//满足条件的数据

     }

就这样我们实现了,点击某个元素,就可以跳转到给元素的详细页面了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信小程序——点击列表里某元素,实现跳转+显示点击元素的内容 的相关文章

  • Makefile的编译方式

    Makefile 使用GCC的命令进行程序编译时 当程序是单个文件时编译是比较方便的 但当工程中的文件数目增多 甚至非常庞大 并且目录结构关系复杂时 便需要通过makefile来进行程序的编译 示例 目录MakeFile Demo下有三个文
  • CSS

    一 是什么 css 即层叠样式表 Cascading Style Sheets 的简称 是一种标记语言 由浏览器解释执行用来使页面变得更美观 css3是css的最新标准 是向后兼容的 CSS1 2的特性在CSS3 里都是可以使用的 而CSS
  • 嵌入式零树小波EZW编码及其算法改…

    在基于小波变换的图象压缩方案中 嵌入式零树小波 EZW Embedded Zerotree Wavelets 1 编码很好地利用小波系数的特性使得输出的码流具有嵌入特性 近年来 在对EZW改进的基础上 提出了许多新的性能更好的算法 如多级树
  • nohup command 2>&1 &的解释

    nohup的作用是让命令永久执行 哪怕当前终端已经退出登录 而 的作用是后台执行 因此 nohup command 的意思是 永久执行command 并且是在后台执行 至于2 gt 1的作用 在bash shell中 0代表标准输入 一般是
  • Java 退出循环的几种方式

    第一种 使用break退出正在循环的循环 while true break 第二种 对循环命名 使用break退出指定循环 loop while true while true break loop 第三种 使用System exit 0
  • 抖音seo矩阵系统源码开发技术

    抖音seo矩阵系统源码开发技术要求十分严格 首先 需要熟练掌握Python Java等编程语言 具有扎实的算法基础 在此基础上 还需要具备深度学习 神经网络等相关技能 能够实现精准推荐和内容分析等功能 其次 抖音seo矩阵系统开发还需要专业

随机推荐