hover和bind不能一起用么?为什么代码无法实现?

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>hover()方法切换事件</title>
        <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
        <link href="style.css" rel="stylesheet" type="text/css" />
    </head>
    
    <body>
        <h3>hover()方法切换事件</h3>
        <div id="123">别走!你就是土豪</div>
        <div id="aaa">点击</div>
        <p style="display:none" id="fk" >666</p>
        <script type="text/javascript">
        
            $(function () 
            {
                x=$("a");
                for(i=0;i<x.length;i++)
                {
                    $("a")[i].bind("click",function()
                    {
                        $("p").css({"display":"block"});
                    })
                    $("a")[i].hover
                    (
                        function () {
                            $(this).addClass("orange");
                        },
                        function () {
                            $(this).removeClass("orange");
                        }
                    )
                }
            )
            
            };
        </script>
    </body>
</html>


qq_吃药先森_03169839
浏览 2708回答 4
4回答

闹小志

首先需要明确,bind和hover只是两种不同的绑定事件的形式,他们之间没有任何冲突。说一说你这段代码的问题:1、语法错误:检查好大括号和圆括号,有报错2、绑定事件写法的错误:$("div")[i].bind这种形式是会报错的。明白这个问题需要了解以下两点:(1)bind是jquery对象的方法,js对象不具备bind方法,调用会报错(2)jquery对转换js对象转换有两种办法一个是$("***").get(0)形式,一个是$("***")[0]这种形式$("div")[i].bind  这种写法,你无意中把jquery对象转换成了js对象,这里一定是会报错的,你需要再把它转换成jquery对象才能调用bind,例如:$($("div")[i]).bind改造之后的代码:$(function () {                 x=$("div");                 for(i=0;i<x.length;i++){                     $($("div")[i]).bind("click",function()                     {                         $("p").css({"display":"block"});                     });                     $($("div")[i]).hover(function()                     {                         $(this).addClass("orange");                     },function(){                         $(this).removeClass("orange");                     });                 }             });3、优化:在jquery中绑定事件不需要写这么麻烦,不需要for循环,最后简化之后的代码如下:$(function () {                 $("div").bind("click",function(){                     $("p").css({"display":"block"});                 });                 $("div").hover(function()                     {                         $(this).addClass("orange");                     },function(){                         $(this).removeClass("orange");                     });             });4、建议你也了解一下用bind绑定事件和直接用hover这种形式绑定事件的区别

慕娘9282524

x=$("a");  你的html中  没有a标签 把

weibo_哆啦A梦有大口袋_0

x=$("a");这是哪个元素,你的HTML结构里面有吗

一杯2块的奶茶

你要用下标取div不是这么用的吧,
打开App,查看更多内容
随时随地看视频慕课网APP