将$this传递到函数中
Passing through $this into function
我正试图传递对用户选择的项目的引用(以便在其上运行适当的Javascript效果),但它似乎不起作用。起初是这样,但当我重构代码以使其更易于阅读时,它停止了。我认为这是我使用的逻辑的问题,有人能告诉我如何纠正吗?
新代码-不起作用,但更易于阅读
$('.timeline-item').click(function() {
expandTimelineDetail( $(this));
});
function expandTimelineDetail($obj) {
// UI effect
$obj = $(this).css("background-color", "#F5F5F5");
setTimeout(function () {
$obj.css("background-color", "#FFFFFF");
}, 250);
// Make timeline item active
$obj.addClass("active-item");
$obj.next().addClass("active-item").css('display', 'block');
// Hide the rest of the timeline items that are not active
$('#timeline > :not(.active-item)').hide();
$('#leftspan').css('visibility', 'visible');
$('.search-container').css('display', 'none');
// Hide relative departure time, show actual departure time
$('.actual-time').css('display', 'inline');
$('.leaving-time').css('display', 'none');
}
旧代码-工作良好但难以阅读
$('.timeline-item').click(function() {
var $this = $(this).css("background-color","#F5F5F5");
setTimeout(function() {
$this.css("background-color","#FFFFFF");
}, 250);
$(this).addClass("active-item");
$(this).next().addClass("active-item").css('display','block');
$('#timeline > :not(.active-item)').hide();
$('#leftspan').css('visibility','visible');
$('.search-container').css('display','none');
$('.actual-time').css('display','inline');
$('.leaving-time').css('display','none');
});
将$(this)
传递给函数,在函数中为$obj
参数分配另一个值。
您可以将this
绑定到函数:
expandTimelineDetail.bind(this);
在哪里您可以像之前一样访问this
或者只是不重新分配$obj
变量。
相关文章:
- 在另一个函数中使用变量this
- JavaScript 中的嵌套函数和 “this” 关键字
- javascript中对象构造函数中的var属性与this.properties
- 函数中this和var之间的区别
- 在JavaScript类型的函数中避免self-this
- 如何使用(this)访问Angular 2 http rxjs catch函数中的对象属性
- jQuery使用ajax自动完成问题-TypeError:this.source不是函数
- 为什么在这种情况下,“This”确实充当javascript函数中的私有成员
- TypeError:this.getAttribute不是一个函数-javascript
- CasperJS error - undefined 不是函数 (this.waitForUrl)
- AngularJs服务函数this()
- 内联onclick函数(this)不调用jQuery方法
- jQuery自定义函数- this.each
- 为什么在构造函数'this'DOMWindow
- 调用匿名函数'this'从函数
- Javascript检查函数(this)的长度
- 如何使用onchange="函数(this.value)
- 改变一个函数"this"值
- javascript构造函数this is't绑定正确
- JS原型函数'this'混乱