为什么mouseenter会触发函数,而你却没有'不要将鼠标悬停在元素上

Why will mouseenter fire the function, while you don't hover over an element?

本文关键字:鼠标 元素 悬停 mouseenter 函数 为什么      更新时间:2023-09-26

只有当用户鼠标光标进入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时,它应该执行链接功能。我做错了什么?

正如Rayon所指出的,而不是通过

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

以下内容必须通过

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

这会在不执行的情况下传递函数。

更新

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

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