在我当前的项目中,用户可以创建一个帖子,并且每个帖子都在页面上进行迭代。

我遇到了班级冲突的问题。

我有一个具有类attend的复选框,但是它与其他帖子和我创建的'click .attend'函数冲突。

有什么办法为每个帖子创建一个唯一的类吗?

我试着做:

<input type="checkbox" id="check" class="{{this._id}}" checked="" />


但该功能不允许

'click .this._id'


我被困在该做什么。

最佳答案

听起来您正在以某种错误的方式进行操作。您可以具有相同的类,但是您需要为每个帖子放置一个模板。对于该模板的每个实例,该模板都可以轻松地到达正确的类。

    <head>
  <title>demosub</title>
</head>

<body>
  <h1>Welcome to Meteor!</h1>

  {{> allposts}}

</body>
<template name="allposts">
   {{#each posts}}
      {{> thepost }}
   {{/each}}
</template>

<template name="thepost">
   <div>
     <span>{{_id}}</span>
      <input type="checkbox" class="attend" checked="" />
    </div>
</template>


然后在事件代码中添加模板“ thepost”

import { Template } from 'meteor/templating';
import { ReactiveVar } from 'meteor/reactive-var';

import './main.html';


Template.allposts.helpers({
  posts() {
    return [{_id: 1}, {_id: 2}]
  },
});

Template.thepost.events({
  'click .attend': function(e,t){
    var data = Template.instance().data  // this is your post...
    console.log(e.toElement.checked)
    console.log(data)
  }
})


在下面,您可以看到我在每个复选框上单击的位置,以及如何知道单击该复选框的位置:-

javascript -  meteor 大火-区分等级-LMLPHP

模板事件知道类“ attend”上的click事件与模板的实例相关联,并调用该事件处理程序。

09-12 02:16