jquery点击事件失效怎么办


本文摘自PHP中文网,作者藏色散人,侵删。

jquery点击事件失效是因为live在JQUERY1.7之后就不推荐使用了,其解决办法就是将代码改为“$("#a").on('click',function(){for(var i=0 ; i< leng;i++){...}}”即可。

推荐:《jquery视频教程》

先放完整代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>测试</title>

<script src="http://libs.baidu.com/jquery/2.0.0/jquery.js"></script>

<style type="text/css">

 #a{

     width:50px;

     height:50px;

     background: rgb(54, 54, 54);

 }

 #b{

     width:50px;

     height:50px;

     background: rgb(144, 243, 182);

 }

 #d{

     width:50px;

     height:50px;

     background: rgb(114, 116, 231);

 }

 li{

     list-style: none;

 }

.display{display:block;}

.hide{display:none;}

 </style>

</head>

<body>

    <p id="a"></p>

    <p id="b"></p>

    <p id="d"></p>

    <p id="c">

        <ul>

            <li id="c1">11111111</li>

            <li id="c2">22222222</li>

            <li id="c3">33333333</li>

        </ul>

    </p>

<script type="text/javascript">

    var link = $('ul li');

    var leng = c.querySelectorAll("li").length;

    $("#a").on('click',function(){

        for(var i=0 ; i< leng;i++){

            link[i].className = 'display'

        }

    })

    $("#b").on('click',function(){

        for(var i=0 ; i< leng;i++){

            if(link[i].id !== 'c2'){

                link[i].className = 'hide'

            }else{

                link[i].className = 'display'

            }

        }

    })

    $("#d").on('click',function(){

        for(var i=0 ; i< leng;i++){

            if(link[i].id !== 'c1'){

                link[i].className = 'hide'

            }else{

                link[i].className = 'display'

            }

        }

    })  

</script>

</body>

</html>

一开始点击事件这样写的,发现点击无效,支持给动态元素和属性绑定事件的是live和on,其中live在JQUERY 1.7之后就不推荐使用了。现在主要用on,使用on的时候也要注意,on前面的元素也必须在页面加载的时候就存在于dom里面。动态的元素或者样式等,可以放在on的第二个参数里面。

阅读剩余部分

相关阅读 >>

jQuery的ajax()函数传值中文乱码怎么办

jQuery 怎么判断字符串是否包含特定字符

jQuery让select不选中怎么实现

jQuery和ajax是什么?

jQuery怎么让checkbox不选中?

jQuery框架是什么?

jQuery怎么禁用a标签

jQuery属性过滤选择器有哪些?

vue.js支持jQuery吗?

jQuery中图片加载失败怎么办

更多相关阅读请进入《jQuery》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...