如何为流星中嵌套的每个元素编写鼠标进入事件?
How to write mouse enter event for nested each elements in meteor?
我想在class="ui fluid popup left transition hidden"里面的内容在鼠标进入时使用弹窗显示。
这是根据特定项目、发布和作业从数据库中获取的。
我的问题是鼠标进入和退出事件仅适用于一个框。这是因为元素内部嵌套了每个,id 分配给第一个框,而不是为所有。如何解决这个问题 wandisco and cloudera are platform and sp1, sp2 are releases, CEI,CQI are projects, and tabs with green,red yellow are jobs
status.html
<div class="example tabClick">
<div class="ui two item inverted small menu" style="margin:0 0.5%">
<a class="item active sbtn1" data-tab="wan"><h4>Wandisco</h4></a>
<a class="item sbtn2" data-tab="second"><h4>Cloudera</h4></a>
</div>
<div class="ui small tab active" data-tab="wan" id="Outer">
<div class="ui top attached blue tiny tabular menu">
{{#each listRelease}}
<a class="item" data-tab="wan/{{this.release}}"><h4>{{this.release}}</h4></a>
{{/each}}
</div>
{{#each listRelease}}
<div class="ui bottom attached tab menu" data-tab="wan/{{this.release}}" id="rel">
<div class="ui menu grids" style="margin-top:0;">
{{#each listProjName this.release}}
<div class=" column equal width aligned padded center aligned">
<div class="ui vertical allifluid menu"><center><p><h4>{{this.project}}</h4></p></center>
{{#each listjobName this.release this.project}}
<div class="ui small menu" style="background-color:{{getStatusColor buildStatus}}; padding-top: 5px; padding-right: 3px; padding-bottom: 5px; padding-left: 8px;" id="jbox">
<p id="viewJob"><h5>{{job}}</h5></p>
<div class="ui fluid popup left transition hidden">
<div class="ui column relaxed grid">
<a class="item">Last Build: {{lastBuild}}</a>
<a class="item">Last Successful Build: {{lastSuccess}}</a>
<a class="item">Duration: {{lastDuration}}</a>
<a class="item">Robo Results: {{robotResult}}</a>
</div>
</div>
</div>
{{/each}}
</div>
</div>
{{/each}}
</div>
</div>
{{/each}}
</div>
</div>
我的鼠标进入和离开事件如下。
status.js
Template.status.events({
'mouseenter #jbox'(event, instance ) {
console.log("mouse enter");
$(".popup").show();
},
'mouseleave #jbox'(event, instance) {
console.log("mouse exit");
$(".popup").hide();
},
});
您通过 id 定义 jbox
,它适用于出现 一次 的元素。但是,在您的 #each
中,这个元素会出现很多次,因此用于取消引用的 id 在这里不是一个好的解决方案。
你最好使用 class
属性:
<div class="jbox ui small menu" style="background-color:{{getStatusColor buildStatus}}; padding-top: 5px; padding-right: 3px; padding-bottom: 5px; padding-left: 8px;">
您还需要将事件选择器签名从使用 #
(取消引用 ID)更改为 .
(取消引用 类)。
Template.status.events({
'mouseenter .jbox'(event, instance ) {
console.log("mouse enter");
$(".popup").show();
},
'mouseleave .jbox'(event, instance) {
console.log("mouse exit");
$(".popup").hide();
},
});
Jankapunkt 在正确的轨道上,但您需要定位 .popup
,它是鼠标下元素的子元素:
Template.status.events({
'mouseenter .jbox'(event, instance ) {
console.log("mouse enter");
$(event.currentTarget).children('.popup').show();
},
'mouseleave .jbox'(event, instance) {
console.log("mouse exit");
$(event.currentTarget).children('.popup').hide();
},
});
我想在class="ui fluid popup left transition hidden"里面的内容在鼠标进入时使用弹窗显示。 这是根据特定项目、发布和作业从数据库中获取的。
我的问题是鼠标进入和退出事件仅适用于一个框。这是因为元素内部嵌套了每个,id 分配给第一个框,而不是为所有。如何解决这个问题 wandisco and cloudera are platform and sp1, sp2 are releases, CEI,CQI are projects, and tabs with green,red yellow are jobs
status.html
<div class="example tabClick">
<div class="ui two item inverted small menu" style="margin:0 0.5%">
<a class="item active sbtn1" data-tab="wan"><h4>Wandisco</h4></a>
<a class="item sbtn2" data-tab="second"><h4>Cloudera</h4></a>
</div>
<div class="ui small tab active" data-tab="wan" id="Outer">
<div class="ui top attached blue tiny tabular menu">
{{#each listRelease}}
<a class="item" data-tab="wan/{{this.release}}"><h4>{{this.release}}</h4></a>
{{/each}}
</div>
{{#each listRelease}}
<div class="ui bottom attached tab menu" data-tab="wan/{{this.release}}" id="rel">
<div class="ui menu grids" style="margin-top:0;">
{{#each listProjName this.release}}
<div class=" column equal width aligned padded center aligned">
<div class="ui vertical allifluid menu"><center><p><h4>{{this.project}}</h4></p></center>
{{#each listjobName this.release this.project}}
<div class="ui small menu" style="background-color:{{getStatusColor buildStatus}}; padding-top: 5px; padding-right: 3px; padding-bottom: 5px; padding-left: 8px;" id="jbox">
<p id="viewJob"><h5>{{job}}</h5></p>
<div class="ui fluid popup left transition hidden">
<div class="ui column relaxed grid">
<a class="item">Last Build: {{lastBuild}}</a>
<a class="item">Last Successful Build: {{lastSuccess}}</a>
<a class="item">Duration: {{lastDuration}}</a>
<a class="item">Robo Results: {{robotResult}}</a>
</div>
</div>
</div>
{{/each}}
</div>
</div>
{{/each}}
</div>
</div>
{{/each}}
</div>
</div>
我的鼠标进入和离开事件如下。 status.js
Template.status.events({
'mouseenter #jbox'(event, instance ) {
console.log("mouse enter");
$(".popup").show();
},
'mouseleave #jbox'(event, instance) {
console.log("mouse exit");
$(".popup").hide();
},
});
您通过 id 定义 jbox
,它适用于出现 一次 的元素。但是,在您的 #each
中,这个元素会出现很多次,因此用于取消引用的 id 在这里不是一个好的解决方案。
你最好使用 class
属性:
<div class="jbox ui small menu" style="background-color:{{getStatusColor buildStatus}}; padding-top: 5px; padding-right: 3px; padding-bottom: 5px; padding-left: 8px;">
您还需要将事件选择器签名从使用 #
(取消引用 ID)更改为 .
(取消引用 类)。
Template.status.events({
'mouseenter .jbox'(event, instance ) {
console.log("mouse enter");
$(".popup").show();
},
'mouseleave .jbox'(event, instance) {
console.log("mouse exit");
$(".popup").hide();
},
});
Jankapunkt 在正确的轨道上,但您需要定位 .popup
,它是鼠标下元素的子元素:
Template.status.events({
'mouseenter .jbox'(event, instance ) {
console.log("mouse enter");
$(event.currentTarget).children('.popup').show();
},
'mouseleave .jbox'(event, instance) {
console.log("mouse exit");
$(event.currentTarget).children('.popup').hide();
},
});