在我当前的项目中,用户可以创建帖子,并且每个帖子都会在页面上迭代。
我遇到了类冲突的问题。
我有一个具有 attend
类的复选框,但它与其他帖子以及我创建的 'click .attend'
函数冲突。
有没有办法为每个帖子创建一个独特的类?
我尝试过这样做:
<input type="checkbox" id="check" class="{{this._id}}" checked="" />
但是该函数不允许
'click .this._id'
我不知道该做什么。
最佳答案
听起来你的处理方式有点错误。您可以拥有相同的类(class),但您需要为每个帖子放置一个模板。该模板可以轻松地为该模板的每个实例获取正确的类。
<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)
}
})
在下面您可以看到我点击每个复选框的位置以及它如何知道点击了哪个帖子:-
模板事件知道“attend”类上的单击事件与模板的实例关联,并调用该事件处理程序。
关于javascript - Meteor Blaze - 区分类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42335489/