Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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
正在尝试调试jquery的“.hover”事件_Jquery_Hover - Fatal编程技术网

正在尝试调试jquery的“.hover”事件

正在尝试调试jquery的“.hover”事件,jquery,hover,Jquery,Hover,我正在使用3个选项卡,而悬停事件似乎没有启动。我有一些PHP决定我们是否在一个部分中使用不同的图像源,因此PHP。据我所知,PHP正在抛出正确的SRC 守则: $("#tab1").hover( ("#tab1").attr("src","img/home_menu_images/png/home_mainmenu_hover_tab1.png"), ("#tab1").attr("src","PHP_SRC1")); $("#tab2").hover( ("#tab2").att

我正在使用3个选项卡,而悬停事件似乎没有启动。我有一些PHP决定我们是否在一个部分中使用不同的图像源,因此PHP。据我所知,PHP正在抛出正确的SRC

守则:

$("#tab1").hover(
  ("#tab1").attr("src","img/home_menu_images/png/home_mainmenu_hover_tab1.png"),
  ("#tab1").attr("src","PHP_SRC1"));

$("#tab2").hover(
  ("#tab2").attr("src","img/home_menu_images/png/home_mainmenu_hover_tab2.png"),
  ("#tab2").attr("src","PHP_SRC2"));

$("#tab3").hover(
  ("#tab3").attr("src","img/home_menu_images/png/home_mainmenu_hover_tab3.png"),
  ("#tab3").attr("src","PHP_SRC3"));

其中PHP_SRCnum是一个围绕echo$tab_image_num的PHP打开和关闭标记。

我的第一个倾向是在mouseover、mouseout函数的开头缺少$。尝试将它们添加到:

$("#tab1").hover(
    $("#tab1").attr("src", "img/home_menu_images/png/home_mainmenu_hover_tab1.png"),
    $("#tab1").attr("src", "PHP_SRC1")
);
$("#tab2").hover(
    $("#tab2").attr("src", "img/home_menu_images/png/home_mainmenu_hover_tab2.png"),
    $("#tab2").attr("src", "PHP_SRC2")
);
$("#tab3").hover(
    $("#tab3").attr("src", "img/home_menu_images/png/home_mainmenu_hover_tab3.png"),
    $("#tab3").attr("src", "PHP_SRC3")
);
如果不起作用,请尝试将它们包装在匿名函数中:

$("#tab1").hover(
    function () {$("#tab1").attr("src", "img/home_menu_images/png/home_mainmenu_hover_tab1.png");},
    function () {$("#tab1").attr("src", "PHP_SRC1");}
);
$("#tab2").hover(
    function () {$("#tab2").attr("src", "img/home_menu_images/png/home_mainmenu_hover_tab2.png");},
    function () {$("#tab2").attr("src", "PHP_SRC2");}
);
$("#tab3").hover(
    function () {$("#tab3").attr("src", "img/home_menu_images/png/home_mainmenu_hover_tab3.png");},
    function () {$("#tab3").attr("src", "PHP_SRC3");}
);

从我自己的角度来看,我不太喜欢jquery选项卡。。。有一种更简单的方法来制作选项卡。。。您添加html锚和ul li标记,然后在它们上添加jquery单击事件。。。在click事件中,创建$post或$get,然后在div容器中呈现所需内容。。。这比使用这些选项卡控件更简单

<ul class="menu">
  <li><a onclick="function1()" class="active">tab1</a></li>
  <li><a onclick="function2()">tab2</a></li>
</ul>

<div id="content">
</div>

<script>
  function function1() {
     $('#content').html('Loading...');
        $.get("/yourdomain/someurl1", { }, function(data) {            
            $('#content').html(data);
        });
  }

  function function2() {
     $('#content').html('Loading...');
        $.post("/yourdomain/someurl2", { id: 1}, function(data) {            
            $('#content').html(data);
        });
  }
</script>

这取决于你

我不明白。是否要绑定悬停事件?因为在这种情况下,您需要将2函数传递给$.hover函数???我知道它现在已被编辑,但请在将来将代码放入帖子时使用代码包装,它的按钮看起来像{}只需写出代码,然后高亮显示,然后点击那个按钮。我会选择委托而不是绑定,因为绑定如果使用不当可能会很危险。而且它也可能很麻烦。也就是说,为了尝试使用prop而不是attr,尽管attr是一个很好的函数,但有时会出现一些问题。而且另一种选择是将两个图像都加载到一个具有display none属性的图像上,该图像位于要交换的图像旁边。你可以分别进行显示/隐藏。你需要阅读文档。-hover方法接受两个函数。你有两种说法。我在整个网站上还有很多其他的隐藏的东西。我将把这些语句转换成ahren和charly所暗示的函数。