如何在angularjs中组合click和mouseenter?

时间:2015-10-30 10:35:00

标签: angularjs

我有一个指令,要在表格列上放置一个排序图标(fa-caret-up,fa-caret-down)当我在列标题上鼠标输入时,它应该显示现有的默认方向desc的相反方向。 我能够获得事件click,mouseenter和mouseleave。 现在的问题是,当您查看要单击的列时,触发是不合适的,它正在删除排序图标。  有没有办法结合click和mouseenter事件来触发下一次点击和鼠标中心事件? 这是我的代码。我需要实现类似ele.bind("点击鼠标中心")或点击事件点击然后实现mouseeneter:

var upSortClass = "fa fa-caret-up";
var downSortClass = "fa fa-caret-down";
var iconClass = ".icon-sort";
var addIconClass ="";
var removeIconClass ="";

ele.bind('click', function () {
    var ic = ele.find(iconClass);
    ic.addClass(addIconClass);
    addIconClass ="";
});
ele.bind('mouseenter', function () {
    var ic = ele.find(iconClass);
    var sortUp = ic.hasClass(upSortClass);
    var sortDown = ic.hasClass(downSortClass);

    if(sortUp) {
        addIconClass = upSortClass;
        removeIconClass = downSortClass;
        ic.removeClass(upSortClass);
        ic.addClass(downSortClass);
    }
    if(sortDown) {
        addIconClass = downSortClass;
        removeIconClass = upSortClass;
        ic.removeClass(downSortClass);
        ic.addClass(upSortClass);
    }
    if(!sortUp && !sortDown) {
        removeIconClass = downSortClass;
        ic.addClass(downSortClass);
    }
});
ele.bind('mouseleave', function () {
    var ic = ele.find(iconClass);
    ic.removeClass(removeIconClass);
    ic.addClass(addIconClass);
    addIconClass ="";
    removeIconClass ="";
});

请指导。 提前谢谢。

0 个答案:

没有答案