javascript - jQuery 中的鼠标悬停事件

标签 javascript jquery mouseover jquery-events

我有以下mouseover功能:

$('.msg_id').live("mouseover", function() {
    $(this).css('cursor', 'pointer');
    tid = $(this).attr('id');
    idx = $(this).attr('name');
    resp=""; 
    
    $.ajax({
        async: false, 
        url: "log_msg.asp",
        data: $("#msgForm").serialize() + "&aktion=popup&msg_id="+tid+"&msg_id"+idx,
        success: function(data){
            $("#"+tid).html(data);   
        }
        });

    //$.post("log_msg.asp", $("#msgForm").serialize() + "&aktion=popup&msg_id="+tid+"&msg_id"+idx,
        //function(data) {          
          
        //}).success(function(){
            //$("#"+tid).html(data);     
             //resp=data;
             //$('#bub'+tid).css('display', 'block');   
             //popd.css('display', 'block');    
            //});
    });

它将一些 html 代码放入 .msg_id 中( $("#"+tid).html(data); )。 函数mouseover 在循环中被调用。当鼠标悬停在其上时,ajax 请求会一直发送,而不仅仅是一次。 我该如何修复它? 我也尝试过 mouseenter,但它也会循环触发。

最佳答案

您可能想使用mouseenter()相反,鼠标悬停将在元素内的每次移动时触发。

$('.msg_id').live("mouseenter", function() {
    //Do work here
});

或者如果不需要现场直播,只需:

$('.msg_id').mouseenter(function() {
    //Do work here
});

<强> MouseOver() :

  • 进入元素时触发,可以在任何子元素内部触发。

<强> MouseEnter():

  • 将在进入某个元素时触发,并且仅在该元素内触发。

关于javascript - jQuery 中的鼠标悬停事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7285902/

相关文章:

javascript - 如何将 Javascript 和 CSS 包含到 Bootstrap 灯箱模式对话框中?

javascript - 如何在重新加载数据表时传递参数

javascript - 如何自动检测当前表单元素具有相同的类名

jquery - 如何使用 JQuery 在 AJAX 回调中查找元素?

java - 在 ChangeListener 的 JToggleButton 上监听翻转?

wpf - 如何创建一个按钮来更改 WPF 中 StackPanel 中的源图像和文本颜色?

javascript - 获取span文本内容

javascript - 无法读取未定义的 JQuery 选项标记的属性

javascript - 在单页应用程序(SPA)中处理身份验证的最佳方法

javascript - 从用作鼠标悬停图像的透明 PNG 获取闪烁