如何处理流星中的按钮点击事件?
How to handle button click events in meteor?
我有一个流星模板:
<template name="createDefaultTemplate">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title"> Select Role of router</h4>
</div>
<div class="btn-group btn-group-justified" id="routerType">
<a href="{{pathFor route="edgeRouterAvailablePGTemplate"}}" id= "edge" class="btn btn-default">Edge Router</a>
<a href="{{pathFor route="aggrRouterAvailablePGTemplate"}}" id= "agg" class="btn btn-default">Aggr. Router</a>
<a href="{{pathFor route="coreRouterAvailablePGTemplate"}}" id= "core" class="btn btn-default">Core Router</a>
</div>
</div>
我正在尝试提取单击按钮的值,以便触发新路由。不幸的是,我做对了。我试过下面的方法,但它确实从按钮中获取了值。
Template.createDefaultTemplate.events({
'click #agg ': function(event){
console.log(event);
var selectValue = $(event.target).val();
console.log(selectValue + "is selected - message logged in events");
Session.set("selectedSchema",selectValue);
console.log(Session.get("selectedSchema")+ " is session variable set - message logged in events");
}
});
我也尝试过类似的东西:
'click' : function(event)
'click a .btn .btn-default' : function(event)
但其中 none 似乎有任何效果。我能够读取 console.log(event) 但我无法在单击后提取值。
我该如何解决这个问题?
如果我很理解你的问题。您需要为每个按钮附加一个值。您可以通过使用 html 元素
的数据属性来实现
<div class="btn-group btn-group-justified" id="routerType">
<a href="{{pathFor route="edgeRouterAvailablePGTemplate"}}" id= "edge" data-value="6" class="btn btn-default">Edge Router</a>
<a href="{{pathFor route="aggrRouterAvailablePGTemplate"}}" id= "agg" data-value="65" class="btn btn-default">Aggr. Router</a>
<a href="{{pathFor route="coreRouterAvailablePGTemplate"}}" id= "core" class="btn btn-default">Core Router</a>
</div>
要取回模板按钮单击事件的值,您可以简单地执行此操作。
var selectValue = $(event.target).data('value')
我无法理解您要实现的目标,但随着您的代码出现,我相信您正试图在单击按钮时路由到不同的模板。如果那是你想要的,那你为什么不将路由地址保留在 'a' 标签
的 'href' 属性 中
<a href="/edge" id= "edge" class="btn btn-default">Edge Router</a>
<a href="/aggr" id= "agg" class="btn btn-default">Aggr. Router</a>
<a href="/core" id= "core" class="btn btn-default">Core Router</a>
我相信您已经为单击的按钮制作了路由,因此请根据 hrefs 对您的路由器进行少量修改。
我觉得应该可以
如果您仍想在单击按钮时访问 href 的值,您可以这样做:
"click .btn":function(e,t){
console.log($(e.target).attr("href"))
}
谢谢
我有一个流星模板:
<template name="createDefaultTemplate">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title"> Select Role of router</h4>
</div>
<div class="btn-group btn-group-justified" id="routerType">
<a href="{{pathFor route="edgeRouterAvailablePGTemplate"}}" id= "edge" class="btn btn-default">Edge Router</a>
<a href="{{pathFor route="aggrRouterAvailablePGTemplate"}}" id= "agg" class="btn btn-default">Aggr. Router</a>
<a href="{{pathFor route="coreRouterAvailablePGTemplate"}}" id= "core" class="btn btn-default">Core Router</a>
</div>
</div>
我正在尝试提取单击按钮的值,以便触发新路由。不幸的是,我做对了。我试过下面的方法,但它确实从按钮中获取了值。
Template.createDefaultTemplate.events({
'click #agg ': function(event){
console.log(event);
var selectValue = $(event.target).val();
console.log(selectValue + "is selected - message logged in events");
Session.set("selectedSchema",selectValue);
console.log(Session.get("selectedSchema")+ " is session variable set - message logged in events");
}
});
我也尝试过类似的东西:
'click' : function(event)
'click a .btn .btn-default' : function(event)
但其中 none 似乎有任何效果。我能够读取 console.log(event) 但我无法在单击后提取值。
我该如何解决这个问题?
如果我很理解你的问题。您需要为每个按钮附加一个值。您可以通过使用 html 元素
的数据属性来实现 <div class="btn-group btn-group-justified" id="routerType">
<a href="{{pathFor route="edgeRouterAvailablePGTemplate"}}" id= "edge" data-value="6" class="btn btn-default">Edge Router</a>
<a href="{{pathFor route="aggrRouterAvailablePGTemplate"}}" id= "agg" data-value="65" class="btn btn-default">Aggr. Router</a>
<a href="{{pathFor route="coreRouterAvailablePGTemplate"}}" id= "core" class="btn btn-default">Core Router</a>
</div>
要取回模板按钮单击事件的值,您可以简单地执行此操作。
var selectValue = $(event.target).data('value')
我无法理解您要实现的目标,但随着您的代码出现,我相信您正试图在单击按钮时路由到不同的模板。如果那是你想要的,那你为什么不将路由地址保留在 'a' 标签
的 'href' 属性 中<a href="/edge" id= "edge" class="btn btn-default">Edge Router</a>
<a href="/aggr" id= "agg" class="btn btn-default">Aggr. Router</a>
<a href="/core" id= "core" class="btn btn-default">Core Router</a>
我相信您已经为单击的按钮制作了路由,因此请根据 hrefs 对您的路由器进行少量修改。
我觉得应该可以
如果您仍想在单击按钮时访问 href 的值,您可以这样做:
"click .btn":function(e,t){
console.log($(e.target).attr("href"))
}
谢谢