我正在尝试触发 View 的 mouseEnter 和 mouseLeave,特别是 <li>
包含子元素的元素。下面的代码似乎在<li>
上添加了一个事件它是 child ,通常不会返回 <li>
,通常是 <p>
或<img>
.
我怎样才能只定位 <li>
这是由 View 创建的?
我的观点:
App.MediaView.Gallery.Item = Ember.View.extend({
tagName: 'li',
mouseEnter: function(e) {
var $this = $(e.target);
if ($this.is('li')) {
this.toggleDetails('show', $this);
}
},
mouseLeave: function(e) {
var $this = $(e.target);
if ($this.is('li')) {
this.toggleDetails('hide', $this);
}
},
toggleDetails: function(which, $this) {
console.log(which);
console.log($this);
console.log('------------------');
}
});
我的模板:
<ul>
{{#each content}}
{{#view App.MediaView.Gallery.Item}}
<div name="content" {{bindAttr class="size type"}}>
{{#if isImage}}
<img {{bindAttr src="content"}} alt="Title" />
{{else}}
<p>This is a video</p>
{{/if}}
<div class="vignette">
<div class="actions">
<a href="#" class="download">Download</a>
{{#if isImage}}<a href="#" class="enlarge">Enlarge</a>{{/if}}
<div class="clear"></div>
</div>
</div>
</div>
{{/view}}
{{/each}}
</ul>
最佳答案
基本上,要获取 View 创建的 DOM 元素,您可以使用 this.$()
这个获取的是 View 元素的 jQuery 对象。
希望有帮助。
关于javascript - Ember - 仅针对父 View 触发 "mouseEnter/mouseLeave",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17436792/