鼠标点击骨干没有效果
Backbone mouse click no effect
我有一个小问题的骨干,我相信有人可以帮助我!
这是我的HTML:
<div id="slides">
<div class="slide map">
Map
</div>
<div class="slide points">
Table
</div>
</div>
和JS:
var SlideView = Backbone.View.extend({
tagName: 'div',
className: 'slide map',
events: {
'click': 'onClick'
},
onClick: function() {
console.log("event !!!");
}
});
var slideView = new SlideView();
当我点击div时,回调不会被执行!!
您的代码看起来不错,只是在事件映射中遗漏了元素id。请尝试以下代码。
events: {
'click #slides': 'onClick'
}
问题是视图不知道页面上的HTML。如果你不设置视图的el
元素,它不会将事件绑定到DOM元素。
要使您的示例工作,您可以执行以下操作。view.setElement ()
var slideView = new SlideView();
slideView.setElement($('div.slide.map'));
tagName
和className
不会从DOM中选择这些元素,它实际上创建了一个新元素作为视图的根,在这种情况下将是<div class="slide map"></div>
。
但是最终你应该在视图原型上设置el
属性。
var SlideView = Backbone.View.extend({
el: 'div.slide.map',
events: {
'click': 'onClick'
},
onClick: function() {
console.log("event !!!");
}
});
或者更好的是,创建包含HTML的视图,然后在页面上放置对它的引用。
var SlideView = Backbone.View.extend({
tagName: 'div',
className: 'slide map',
render: function(){
// this.$el is a equiv. to $(<[tagName] class="[className]"></[tagName>);
this.$el.html("/* HTML String to go inside the tag */");
return this;
},
events: {
'click': 'onClick'
},
onClick: function() {
console.log("event !!!");
}
});
var slideView = new SlideView();
slideView.render();
$('#slides').prepend(slideView.$el);
相关文章:
- 有没有一种方法可以从隐藏的可见性(CSS,JS)中获得淡入效果
- jQuery鼠标悬停渐变效果
- D3折线图鼠标悬停坐标效果
- 将鼠标悬停在图像效果上
- 无论鼠标走到哪里,都能产生效果
- 如何添加效果,以便将鼠标悬停在 SVG 元素上使其变大
- 鼠标悬停弹出窗口,但有延迟
- 我想要一个类似于网站 https://onlycoin.com/ 的jQuery鼠标滚动动画效果
- 每次鼠标悬停触发一次 jquery 效果
- 有没有办法提高鼠标移动的分辨率
- 当我尝试添加文本效果时,有东西阻止了JavaScript的运行'手风琴'在html文档中
- 每个元素有多个鼠标悬停事件
- 鼠标过度展开效果
- 在Windows8(HTML/JS)中,有什么方法可以区分触摸和鼠标交互吗
- 有可能得到鼠标按钮4、5等吗
- 如何开始新的速度.js只有当第一个结束时才有效果
- jQuery循环淡出效果鼠标悬停
- 鼠标悬停有退色效果
- 显示溢出文本的Jquery效果<鼠标悬停时的菜单元素
- 有问题的悬停效果或鼠标移动效果