$(this) in JavaScript Module Pattern
$(this) in JavaScript Module Pattern
我第一次尝试使用Javascript模块模式来组织我的代码。我了解"this"在这里的工作原理,但无法弄清楚 $(this) 是如何工作的。例如,下面的代码,$(this).addClass('video-active');在"选择视频"功能中,我只想对单击的元素应用 addClass。但它不起作用。有人可以给我一些建议吗?谢谢!
;(function() {
'use strict';
if (typeof window.jQuery !== 'function') {
return;
}
var $ = jQuery;
var video = {
init: function() {
this.cacheDom();
this.bindEvents();
this.render();
},
cacheDom: function() {
this.$el = $('#videoWrap');
this.$button = this.$el.find('.video');
},
render: function() {
},
bindEvents: function() {
this.$button.bind('click', this.chooseVideo.bind(this));
},
chooseVideo: function(e) {
e.preventDefault ? e.preventDefault() : e.returnValue = false;
this.$button.removeClass('video-active');
$(this).addClass('video-active');
}
};
video.init();
})();
当你使用bind时,你正在改变this
的上下文
因此,您需要使用事件对象来获取单击的内容。
chooseVideo: function(e) {
e.preventDefault ? e.preventDefault() : e.returnValue = false;
this.$button.removeClass('video-active');
$(e.target).addClass('video-active');
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 使用php或javascript从facebook相册URL中删除多余的部分
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在JavaScript中将字符串转换为函数引用
- 模糊事件的Javascript测试
- Javascript更改图标
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- $(this) in JavaScript Module Pattern
- JavaScript Module 模式和拖放 API
- Javascript Module Pattern有什么好处
- Javascript Module 模式.如何访问模块内的全局变量
- 如何从 JavaScript Code Module 上下文中使用 FormData
- Javascript Module Pattern 和 new 关键字
- HTML / Javascript module
- Expressjs JavaScript Fundamentals: exports = module.exports
- javascript module pattern from You don't know JS
- 在angular.module之前加载javascript文件
- Module Javascript