Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 鼠标悬停时,chrome中出现闪烁问题_Javascript_Jquery - Fatal编程技术网

Javascript 鼠标悬停时,chrome中出现闪烁问题

Javascript 鼠标悬停时,chrome中出现闪烁问题,javascript,jquery,Javascript,Jquery,我编写了一个javascript,它根据提供给它的jSON数据生成动态元素 $(function () { var list = JSON.parse(@ViewBag.NomineeList); var counter = 1; var tr; $(list).each((function () { if (counter % 2 != 0) { tr = CreateE

我编写了一个javascript,它根据提供给它的jSON数据生成动态元素

  $(function () {
        var list = JSON.parse(@ViewBag.NomineeList);
        var counter = 1;
        var tr;
        $(list).each((function () {
            if (counter % 2 != 0) {
                tr = CreateElems('tr', null, null);
            }
            var td = CreateElems('td', null, null);
            var div = CreateElems('div', 'dvBorder', null);
            div.attr('empID', this.EmpId);
            div.attr('nomineeID', this.Id);
            RegisterEvents(div);
            div.append('<img alt="user" src=' + this.UserImagePath + ' style="padding: 5px;" />');
            div.append(CreateElems('span', 'EmpolyeeName', this.FirstName));
            div.append(CreateElems('span', 'EmployeeEmail', this.Email));
            td.append(div);
            tr.append(td);
            if (counter % 2 == 0) {
                $('#tblEmployee').append(tr);
                tr = "";
            }
            counter++;
        }));
    });

    function CreateElems(type,cssClass,value)
    {
        var elem = $(document.createElement(type));

        if(value != null)
            elem.text(value);

        if(cssClass!= null)
            elem.addClass(cssClass);

        return elem;
    }
当您将鼠标悬停在工具上时,会出现工具提示。在那个事件中,我正在检查dom中是否存在任何以前的工具提示,它应该被删除

  function RemoveToolTip() {
            $('#tblEmployee').find('div.RollOverTip').remove();
        }
但有时浏览器上仍会出现两个或三个以上的工具提示。这也可以优化一点

Html


脚本中有哪些可能的优化,以及消除闪烁的建议?

尝试使用
mouseenter
mouseleave
停止闪烁

    $(crntDiv).mouseenter(function () {
        RemoveToolTip();
        url = "/home/GetDescription?nomineeId=" + $(crntDiv).attr('nomineeID');
        AjaxCall(url, true, crntDiv);
    });

    $(crntDiv).mouseleave(function () {
        $(crntDiv).children('div.RollOverTip').remove();
    });

尝试使用
mouseenter
mouseleave
它可能会解决问题,而不是mouseover和mouseout

编辑

试试这个: 改变


是的,通过更改事件有改进,是否可以提供任何其他优化来导入脚本
<table border="0" cellpadding="5" cellspacing="0"  id="tblEmployee">
        </table>
.dvBorder
{
    background-image: url(/Images/screen2-button.png);
    background-repeat: no-repeat;
    height: 125px;
    width: 400px;
    cursor:pointer;
    position: relative;
}


.RollOverTip
{
    background-image: url("/Images/screen2-rollover-tooltip.png");
    background-repeat: no-repeat;
    color: #000000;
    font-family: Calibri Regular;
    font-size: 18pt;
    height: 199px;
    line-height: 20pt;
    margin-left: 385px;
    position: absolute;
    width: 474px;
    z-index: 90000;
    padding:34px;
}
    $(crntDiv).mouseenter(function () {
        RemoveToolTip();
        url = "/home/GetDescription?nomineeId=" + $(crntDiv).attr('nomineeID');
        AjaxCall(url, true, crntDiv);
    });

    $(crntDiv).mouseleave(function () {
        $(crntDiv).children('div.RollOverTip').remove();
    });
 $(crntDiv).mouseover(function () {...}
$(document).on('mouseenter',$(crntDiv,'#tblEmployee div.RollOverTip'), function () {...}