如何只运行一次子事件

时间:2017-02-12 02:13:51

标签: javascript jquery

我想在焦点触发后只做一次mouseleave。怎么样? 我尝试了几个选项,如off,preventDefault,stopPropagation,return false;但没有一个有效。

提前谢谢。

addEvent(date, 'focus', function () {
    console.log("focuz" + this.innerHTML);
    document.designMode = 'on';

    addEvent(swap_date, 'mouseleave', function (e) {
        console.log("mouseleave" + this.innerHTML);
        //document.designMode = 'on';
        $(this).off(e);
        e.preventDefault();
        e.stopPropagation();
        return false;
     });
});

2 个答案:

答案 0 :(得分:0)

设置一个标志,并在该标志的基础上执行你的功能,

试试这个

let position = CLLocationCoordinate2D(latitude: 10, longitude: 10)
let marker = GMSMarker(position: position)
marker.title = "Hello World"
marker.map = mapView

答案 1 :(得分:0)

在mouseenter事件中修复,以使用stop var触发检查。 一旦mouseleave发生,停止就会开启。

addEvent(swap_date, 'mouseenter', function () {
stop = false;
});

addEvent(swap_date, 'focus', function () {
document.designMode = 'on';

if (this.innerHTML != "") {
    $(document).ready(function () {
        $('.swapDate').bind('mouseleave', function (event) {
            if (!stop && this.innerHTML != "")
            checkDate(this.innerHTML);
            stop = true;
            $('.swapDate').unbind('mouseleave');
        });


    });
}
});