IE7&8没有为表中附加的元素触发jQuery点击事件

前端之家收集整理的这篇文章主要介绍了IE7&8没有为表中附加的元素触发jQuery点击事件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个IE错误,我不知道如何解决.

使用jQuery我动态地移动一个菜单显示在鼠标悬停元素上.

我的代码(简化)看起来像这样:

$j = jQuery.noConflict();

$j(document).ready(function()
{
    //do something on the menu clicks
    $j('div.ico').click(function() { alert($j(this).parent().html()); });

    setUpActions('#tableId','#menuId');
});

//on mouSEOver set up the actions menu to appear on mouSEOver
function setUpActions(tableSelector,menuSelector)
{
    $j(tableSelector + ' div.test').mouSEOver(function()
    {
        //note that append will move the underlying
        //DOM element with all events from it's old
        //parent to the end of this one.
        $j(this).append($j(menuSelector).show());
    });
}

IE7,IE8和IE8-IE7中的菜单似乎没有正确地注册菜单(是的,MS,IE7中真的是一个“新的渲染引擎”,我们都相信你).

它的工作原理与其他一切.

你可以看到a basic demo here的行为.

在演示中您可以看到两个问题的例子:

>按钮后面的图像应该在悬停上改变(用CSS:悬停选择器完成).它在第一个鼠标悬停时起作用,但仍然存在.
>点击事件不会触发 – 但是使用开发工具,您可以手动调用它,它仍然被订阅.

您可以在IE8的开发工具中看到(2):

>在IE8中打开page
>打开开发工具
>选择“脚本”选项卡和“控制台”子选项卡
>类型:$j(‘#testFloat div.ico:first’).click()手动调用任何订阅的事件
>页面上会有一个警报

这意味着我不会丢失事件订阅,他们仍然在那里,IE只是在我点击时不打电话给他们.

有没有人知道为什么这个bug发生(除了仅仅因为IE的尊贵引擎)?

解决方法吗?

这可能是我做错了的事情,正好在其他事情上正常工作吗?

解决方法

奇怪的是,虽然您的点击事件在IE中未触发,但如果您将其更改为mousedown或鼠标,则可以像您预期的那样工作,但仍然有您的图像悬停问题.
$j('div.ico').mouseup(function() { alert($j(this).parent().html()); });
原文链接:https://www.f2er.com/jquery/180019.html

猜你在找的jQuery相关文章