jQuery代码不能在Google Chrome上工作

jQuery code doesn't work on Google Chrome?

本文关键字:Chrome 工作 Google 代码 不能 jQuery      更新时间:2023-09-26

此代码不能在google chrome上运行,但可以在Firefox, opera和IE上运行

function show() {
    $('#networks').click(function () {
        $('#social').slideDown(1000);
        $('#face,#twitter,#google,#youtube,#rss').fadeIn(2000)
    });
    $('#networks').blur(function () {
        $('#face,#twitter,#google,#youtube,#rss').fadeOut(1000);
        $('#social').delay(1000).slideUp(1000);
    });
}

在相同的文档后,这段代码我写了下面的代码,并在谷歌chrome和所有其他浏览器上工作,为什么这段代码在谷歌chrome上工作得很好,但上面没有?

function UseData() {
    $("#submit").click(function () {
        $(this).val("");
        $(this).animate({
            width: '250px',
        }, "slow")
    });
    $("#submit").blur(function () {
        $(this).val("Search");
        $(this).animate({
            width: '175px',
        }, "slow");
    });
}

谢谢

http://jsfiddle.net/A4CJz/10/

我相信你想要的效果是这样的:

  • 当鼠标悬停在元素(不是focus)上时,显示社交菜单
  • 当鼠标离开元素(不是blur)时,隐藏社交菜单

你的价格太贵了。这就是为什么它不能在chrome中工作。在此解决方案有用之前,您确实需要学习有效的标记和有效的JS。特别是,不能在列表中将a标记包裹在li标记周围。ul唯一有效的子节点是li

您也不需要标识每个li元素并直接针对它们。jquery的快速课程将向您展示可以通过标记名称进行定位,您将在我发布的示例中看到我这样做,如:$('#social li')

我也没有你的内联JS和使用jquery连接mouseentermouseleave事件。

我建议你仔细研究代码,并试着理解我是如何以及为什么这样重构你的代码的

好的,首先你的小提琴依赖于jQuery,所以你必须包括它。第二件事是,您必须在head中加载脚本才能使用inline代码。(onclick -处理程序在html -标签)。否则你的function将是未定义的;-)

但是指出你真正的问题是什么,没有什么特别需要的。a -标签不能处理focusblur -事件。

您可以在这里阅读更多内容:http://api.jquery.com/focus/#entry-longdesc

工作小提琴:

http://fiddle.jshell.net/A4CJz/3/

另一个提示,防止附加的event的默认操作,以终止其正常行为。只需在event -对象上使用preventDefault或在事件处理程序函数末尾使用简单的return false即可完成。

http://fiddle.jshell.net/A4CJz/12/