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

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

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

           ②显示点击元素的内容——获取点击元素在列表里面的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);//满足条件的数据

     }

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

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 微信小程序点击按钮跳转页面可以使用 `wx.navigateTo` 或 `wx.redirectTo` 方法。 首先,在按钮的绑定事件中调用方法,如: ``` <button bindtap='jumpPage'>跳转页面</button> ``` 然后,在页面的 js 文件中实现跳转逻辑,如: ``` Page({ jumpPage: function() { wx.navigateTo({ url: '/pages/newpage/newpage' }) } }) ``` 注意,需要在项目的 `app.json` 文件中注册新页面,才能在小程序中使用。 使用 `wx.navigateTo` 方法会在当前页面下方加载新页面,而使用 `wx.redirectTo` 方法会替换当前页面,也就是关闭当前页面,并打开新页面。 希望这些信息能帮到你! ### 回答2: 要在微信小程序实现点击按钮跳转页面,首先需要在小程序的页面中添加一个按钮组件,并设置按钮的事件绑定。在按钮的事件处理函数中,可以通过调用微信小程序的导航API实现页面的跳转。 具体步骤如下: 1. 在小程序的页面中,添加一个按钮组件: ``` <button bindtap="redirectToPage">点击跳转</button> ``` 2. 在小程序页面的js文件中,定义按钮的点击事件处理函数: ``` Page({ redirectToPage: function() { wx.navigateTo({ url: '跳转的页面路径' }) } }) ``` 其中,`wx.navigateTo`是微信小程序的导航API,可以跳转到应用的某个页面。在`url`参数中,填入跳转页面的路径,如`'pages/other/other'`。跳转的页面路径需要在小程序的配置文件`app.json`中进行配置。 3. 在小程序的配置文件`app.json`中,为跳转的页面路径进行配置: ``` { "pages": [ "pages/index/index", "pages/other/other" ], "window":{ "backgroundTextStyle":"light", "navigationBarBackgroundColor": "#fff", "navigationBarTitleText": "微信小程序", "navigationBarTextStyle":"black" } } ``` 在`pages`数组中,添加需要跳转的页面路径,以使跳转路径有效。 通过以上步骤,就可以在微信小程序实现点击按钮跳转页面的功能了。 ### 回答3: 要实现微信小程序点击按钮跳转页面,可以按照以下步骤进行操作: 1. 在当前页面的.wxml文件中,定义一个按钮,并设置相应的样式和事件绑定,例如: ``` <button bindtap="navigateToPage">跳转到新页面</button> ``` 2. 在当前页面的.js文件中,编写相应的事件处理函数,例如: ``` Page({ navigateToPage: function() { wx.navigateTo({ url: '/pages/newPage/newPage' }) } }) ``` 3. 在app.json文件中配置新页面的路径和窗口样式,例如: ``` { "pages": [ "pages/index/index", "pages/newPage/newPage" ], "window": { "backgroundColor": "#ffffff", "navigationBarTitleText": "微信小程序" } } ``` 4. 在新页面的.wxml文件中,定义相应的内容和样式。 以上就是在微信小程序实现点击按钮跳转页面的基本步骤。需要注意的是,页面间的跳转可以使用`wx.navigateTo`方法跳转到新页面,也可以使用`wx.redirectTo`方法进行页面重定向,具体使用哪种方法根据需求来决定。同时,还可以使用`wx.navigateBack`方法返回上一页,或者使用`wx.switchTab`方法切换到指定的tab页。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值