为什么mouseenter会触发该函数,而不是将鼠标悬停在元素上?

时间:2016-07-26 17:33:33

标签: javascript jquery

仅当用户鼠标光标进入div元素.post-entry时,才应调用以下代码。到现在为止,当我刷新页面时,我立即收到console.log进入并移动。

app.uiController = {

    init: function() {

        // Development
        console.log('init uiController');

        var el = $('.entry .post-entry');
        var dot = $('img');


        // Call functions
        $(el).on('mouseenter', app.uiController.mouseEnter());
        $(el).on('mousemove', app.uiController.mouseMove());

    }, 

    mouseEnter: function() {

        console.log('enter');

    }, 

    mouseMove: function() {

        console.log('move');


    }

}

默认情况下,页面将调用app.uiController对象。如前所述,鼠标输入和移动在加载脚本后立即工作,但我将变量el分配给事件,因此当鼠标位置进入.post-entry时,它应该执行链接功能。 我做错了什么?

1 个答案:

答案 0 :(得分:2)

正如Rayon指出的那样,而不是传递

// Call functions
$(el).on('mouseenter', app.uiController.mouseEnter());

必须通过以下内容

// Call functions
$(el).on('mouseenter', app.uiController.mouseEnter);

这会传递函数而不执行它。

更新

您可以在this内使用mouseEnter:例如

mouseEnter: function() {
    id = $( this ).attr("id");
    $("#result").text('enter that.id =' + id);

}