疑是 element 组件中 tab 的一个 bug

讨论 已结 1 872
岁月小偷
悬赏:20飞吻
遇到一个问题,element添加了tab切换监听,但是通过页面点击的切换跟调用element.tabChange方法进去的回调函数中this指向不同,页面点击就是api中说明的是那个li节点,但是通过方法点击并不是,应该是代码的一个bug。
//Tab点击
tabClick: function(e, index, liElem, options){
options = options || {};
var othis = liElem || $(this)
,index = index || othis.parent().children('li').index(othis)
,parents = options.headerElem ? othis.parent() : othis.parents('.layui-tab').eq(0)
,item = options.bodyElem ? $(options.bodyElem) : parents.children('.layui-tab-content').children('.layui-tab-item')
,elemA = othis.find('a')
,filter = parents.attr('lay-filter');

if(!(elemA.attr('href') !== 'javascript:;' && elemA.attr('target') === '_blank')){
othis.addClass(THIS).siblings().removeClass(THIS);
item.eq(index).addClass(SHOW).siblings().removeClass(SHOW);
}

// layui.event.call(this, MOD_NAME, 'tab('+ filter +')', {
layui.event.call(othis, MOD_NAME, 'tab('+ filter +')', {
elem: parents
,index: index
});
}
回帖
  • 贤心
    贤心 (管理员)
    2017-12-1
    this 是原始 DOM,你在事件中要使用 jQuery 对象的话,要 $(this)
    0 回复
本帖已设置禁止回复