我正在使用Meteor并使用以下代码将_id存储到会话中:
'click .players': function(){
var playerId = this._id;
Session.set('selectedPlayer', playerId);
上述会话是在用户点击<li class="players">
我想在用户点击<li class="players">
最好的方法是什么?
谢谢!
答案 0 :(得分:0)
你可以这样做:
'click :not(".players")': function(ev){
Session.set('selectedPlayer',null);
}
答案 1 :(得分:0)
此解决方案有点受限,因为选择器:not("li.players")
位于模板中,这意味着您可以单击模板外部的某个位置,它不会触发单击事件。建议将click事件放在body模板下,但是当你单击html部分时它仍然不会触发click事件。
if (Meteor.isClient) {
Template.body.events {
'click :not("li.players")': function(e) {
Session.set('selectedPlayer', null);
}
}
}
更确切地说,这可能会帮助你。
if (Meteor.isClient) {
$(document).click(function(e) {
e.stopPropagation();
var target = $(e.target);
var players = $('li.players');
if (!players.is(target) && players.has(target).length === 0) {
Session.set('selectedPlayer', null);
}
})
}