JQuery②2

简介: JQuery②2

5、JQuery 练习2

动态添加、删除表格记录

添加删除记录-5.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title>Insert title here</title>
    <script type="text/javascript" src="../../script/jquery.js"></script>
    <style type="text/css">
        table{
            width: 100px;
            height: 140px;
            border: 1px solid black;
            border-collapse: collapse;
            margin-left: auto;
            margin-right: auto;
        }
        td,th{
            border: 1px solid black;/*设置边框*/
        }
        div {
            border: 1px black solid;
            width: 300px;
            height: 280px;
            text-align: center;
            margin-left: auto;
            margin-right: auto;
        }
    </style>
    <script type="text/javascript">
        $(function () {
            //创建一个复用的用于删除的函数
            var deleteFun=function(){
                // alert("删除事件"+this);
                var $trObj=$(this).parent().parent();//this就是响应的dom对象
                var name=$trObj.find("td:first").text();
                /**
                 * confirm("");是JavaScript语言提供的一个确认提示框函数,你给它传什么,它就提示什么
                 * 当用户点击确定就返回true;当用户点击取消就返回false
                 */
                if(confirm("你确定要删除["+name+"]吗?")){
                    $trObj.remove();
                }
                // return false;可以阻止元素的默认行为
                return false;
            }
            $("#addEmpButton").click(function () {
                //获取输入框中的姓名、邮箱、工资的内容
                var name=$("#empName").val();
                var email=$("#email").val();
                var salary=$("#salary").val();
                //创建一个行标签对象,添加到显示数据的表格中
                var $trObj=$(" <tr>" +
                    "            <td>"+name+"</td>" +
                    "            <td>"+email+"</td>" +
                    "            <td>"+salary+"</td>" +
                    "            <td><a href=\"deleteEmp?id-001\">Delete</a></td>" +
                    "        </tr> ");
                //添加到显示数据的表格中
                $trObj.appendTo( $("#employeeTable"));
                //给添加的行对象的a标签绑上单击事件
                // $trObj.find("a").click(function () {
                //     // alert("事件响应"+this);
                //     deleteFun();
                // });
                $trObj.find("a").click(deleteFun);
            });
            //给删除的a标签绑定单击事件
            $("a").click(deleteFun);
        });
    </script>
</head>
<body>
    <table id="employeeTable">
        <tr>
            <th>Name</th>
            <th>Email</th>
            <th>Salary</th>
            <th></th>
        </tr>
        <tr>
            <td>Tom</td>
            <td>tom@tom.com</td>
            <td>5000</td>
            <td><a href="deleteEmp?id-001">Delete</a></td>
        </tr>
        <tr>
            <td>Jerry</td>
            <td>jerry@sohu.com</td>
            <td>8000</td>
            <td><a href="deleteEmp?id=002">Delete</a></td>
        </tr>
        <tr>
            <td>Bob</td>
            <td>bob@tom.com</td>
            <td>10000</td>
            <td><a href="deleteEmp?id=003">Delete</a></td>
        </tr>
    </table>
<br/>
<br/>
<br/>
    <div id="formDiv">
        <h4>添加新员工</h4>
        <table>
            <tr>
                <td class="word">name:</td>
                <td class="inp">
                    <input type="text" name="empName" id="empName" />
                </td>
            </tr>
            <tr>
                <td class="word">email:</td>
                <td class="inp">
                    <input type="text" name="email" id="email"/></td>
            </tr>
            <tr>
                <td class="word">salary:</td>
                <td class="inp">
                    <input type="text" name="salary" id="salary" />
                </td>
            </tr>
            <tr>
                <td colspan="2" align="center">
                    <button id="addEmpButton" value="abc">
                        Submit
                    </button>
                </td>
            </tr>
        </table>
    </div>
</body>
</html>

6、CSs样式操作。

addClass

添加样式

moveClass)

删除样式

toggleClass[)

有就删除,没有就添加样式。

offset()

获取和设置元素的坐标。

jqueryCSS.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title>Insert title here</title>
    <script type="text/javascript" src="../script/jquery.js"></script>
    <style type="text/css">
        div{
            width:100px;
            height:260px;
        }
        div.whiteBorder{
            border: 2px white solid;
        }
        div.redDiv{
            background-color: red;
        }
        div.blueBorder{
            border: 5px blue solid;
        }
    </style>
    <script type="text/javascript">
        $(function () {
            var $divEle = $('div:first');
            $("#btn01").click(function(){
                //addClass()-向被选元素添加一个或多个类
                $divEle.addClass('redDiv blueBorder');
            });
            $('#btn02').click(function(){
                //removeClass()-从被选元素删除一个或多个类
                $divEle.removeClass('redDiv blueBorder');
            });
            $("#btn03").click(function(){
                //toggleClass()-对被选元素进行添加/删除类的切换操作
                $divEle.toggleClass('redDiv');
            });
            $("#btn04").click(function(){
                //offset()-返回第一个匹配元素相对于文档的位置。
                var pos=$divEle.offset();
                // console.log(pos);
                $divEle.offset({
                    top:100,
                    left:50
                });
            });
        });
    </script>
</head>
<body>
    <table align="center">
        <tr>
            <td>
                <div class="border">
                </div>
            </td>
            <td>
                <div class="btn">
                    <input type="button" value="addClass()" id="btn01"/>
                    <input type= "button" value="removeClass()" id="btn02"/>
                    <input type= "button" value="toggleClass()" id="btn03"/>
                    <input type="button" value= "offset()" id="btn04"/>
                </div>
            </td>
        </tr>
    </table>
</body>
</html>

7、jQuery动画

基本动画

show()

将隐藏的元素显示

hide()

将可见的元素隐藏。

toggle()

可见就障藏,不可见就显示。

以上动画方法都可以添加参数。

1、第一个参数是动画执行的时长,以毫秒为单位

2、第二个参数是动画的回调函数(动画完成后自动调用的函数

淡入淡出动画

fadeln()

淡入(慢慢可见)

fadeOut(

淡出(慢慢消失)

fadeTo()

在指定时长内慢慢的将透明度修改到指定的值。0透明;且完成可见,0.5半透明

fadeToggle()

淡入/淡出切换

动画.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title>Insert title here</title>
    <script type="text/javascript" src="../script/jquery.js"></script>
    <style type="text/css">
        div{
            width:100px;
            height:260px;
            border: 2px white solid;
            background-color: red;
        }
    </style>
    <script type="text/javascript">
        $(function () {
            //显示 show()
            $("#btn1").click(function(){
                $("#div1").show(2000,function () {
                    alert("show 动画已完成");
                });
            });
            //隐藏 hide()
            $('#btn2').click(function(){
                $("#div1").hide(1000,function () {
                    alert("hide 动画已完成");
                });
            });
            //切换 toggle()
            $("#btn3").click(function(){
                $("#div1").toggle(1000,function () {
                    alert("toggle 动画已完成");
                });
            });
            // 前面用过的动画效果
            // var abc=function(){
            //     $("#div1").toggle(1000, abc);
            // }
            //
            // abc();
            //淡入 fadeIn()
            $("#btn4").click(function(){
                $("#div1").fadeIn(1000,function () {
                    alert("fadeIn 动画已完成");
                });
            });
            //淡出 fadeOut()
            $("#btn5").click(function(){
                $("#div1").fadeOut(2000,function () {
                    alert("fadeOut 动画已完成");
                });
            });
            //淡化到 fadeTo()
            $("#btn6").click(function(){
                $("#div1").fadeTo(2000,0.5,function () {
                    alert("fadeTo 动画已完成");
                });
            });
            //淡化切换(淡入/淡出) fadeToggle()
            $("#btn7").click(function(){
                $("#div1").fadeToggle(1000,function () {
                    alert("fadeToggle 动画已完成");
                });
            });
        });
    </script>
</head>
<body>
    <table>
            <tr>
                <td><button id="btn1">显示show()</button></td>
            </tr>
            <tr>
                <td><button id="btn2">隐藏hide()</button></td>
            </tr>
            <tr>
                <td><button id="btn3">显示/隐藏切换toggle()</button></td>
            </tr>
            <tr>
                <td><button id="btn4">淡入fadeIn()</button></td>
            </tr>
            <tr>
                <td><button id="btn5">淡出fadeOut()</button></td>
            </tr>
            <tr>
                <td><button id="btn6">淡化到fadeTo()</button></td>
            </tr>
            <tr>
                <td><button id="btn7">淡化切换fadeToggle()</button></td>
            </tr>
    </table>
    <div id="div1" style="...">
        jquery定义了很多动画效果,可以很方便的使用这些动画效果
    </div>
</body>
</html>

六、练习品牌展示

displaycs.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>品牌展示练习</title>
    <style type="text/css">
        * {
            margin: 0;
            padding: 0;
        }
        body {
            font-size: 12px;
            text-align: center;
        }
        a {
            color: #04D;
            text-decoration: none;
        }
        a:hover {
            color: #F50;
            text-decoration: underline;
        }
        .SubCategoryBox {
            width: 600px;
            margin: 0 auto;
            text-align: center;
            margin-top: 40px;
        }
        .SubCategoryBox ul {
            list-style: none;
        }
        .SubCategoryBox ul li {
            display: block;
            float: left;
            width: 200px;
            line-height: 20px;
            padding-top: 10px;
        }
        .showmore a, .showless a {
            display: block;
            width: 120px;
            margin: 0 auto;
            line-height: 24px;
            border: 1px solid #AAA;
        }
        .showmore a span {//类选择器 后代选择器
            padding-left: 15px;
            background: url(img/down.gif) no-repeat 0 0;
        }
        .showless a span {
            padding-left: 15px;
            background: url(img/up.gif) no-repeat 0 0;
        }
        .promoted a {
            color: #F50;
        }
    </style>
    <script type="text/javascript" src="./script/jquery.js">
    </script>
    <script type="text/javascript">
        $(function () {
            //基本初始状态
            $("li:gt(5):not(:last)").hide();
            //给功能按钮绑定单击事件
            $("div div a").click(function () {
                //让某些品牌显示或隐藏
                $("li:gt(5):not(:last)").toggle();
                //判断品牌当前是否可见
                if($( "li:gt(5):not(:last)" ).is(":hidden")){
                    // 品牌隐藏的状态   按钮上的文字 1显示所有的品牌   ==角标向下 showmore
                    $("div div a span").text("显示所有品牌 ");
                    $("div div").removeClass();
                    $("div div").addClass("showmore");
                    //    去高亮
                    $("li:contains('佳能')").removeClass("promoted");
                }else {
                    // 品牌显示的状态   按钮上的文字 2显示精简的品牌   ==角标向上 showless
                    $("div div a span").text("显示精简品牌 ");
                    $("div div").removeClass();
                    $("div div").addClass("showless");
                    //    加高亮
                    $("li:contains('佳能')").addClass("promoted");
                }
                return false;
            });
        });
    </script>
</head>
<body>
    <div class="SubCategoryBox">
        <ul>
            <li ><a href="#">佳能</a><i>(30440)</i></li>
            <li><a href="#">索尼</a><i>(27220)</i></li>
            <li><a href="#">三星</a><i>(20808) </i></li>
            <li><a href="#">尼康</a><i>(17821)</i></li>
            <li><a href="#">松下</a><i>(12289) </i></li>
            <li><a href="#">卡西欧</a><i>(8242) </i></li>
            <li><a href="#">富士</a><i>(14894) </i></li>
            <li><a href="#">柯达</a><i>(9520) </i></li>
            <li><a href="#">宾得</a><i>(2195)</i></li>
            <li><a href="#">理光</a><i>(4114) </i></li>
            <li><a href="#">奥林巴斯</a><i>(12205) </i></li>
            <li><a href="#">明基</a><i>(1466) </i></li>
            <li><a href="#">爱国者</a><i>(3091) </i></li>
            <li><a href="#"> 其它品牌相机</a><i>(7275) </i></li>
        </ul>
    <div class="showmore">
        <a href="more.html"> <span>显示全部品牌</span> </a>
    </div>
    </div>
</body>
</html>

down.gif

up.gif

8、jQuery事件操作

$( function(){});
window.onload = function(){}
的区别?

他们分别是在什么时候触发?

1、jQuery的页面加载完成之后是浏览器的内核解析完页面的标签创建好DOM对象之后就会马上执行。

2、原生的js 的页面加载完成之后,除了要等浏览器的内核解析完页面的标签创建好DOM对象,还需要标签显示时需要的内容加载完成

他们触发的顺序?

1、jQuery页面加载完成之后先执行

2、原生的js 的页面加载完成之后

他们执行的次数

1、原生的js 的页面加载完成之后,只会执行最后一次的赋值函数

2、jQuery页面加载完成之后是把全部注册的fuction函数,依次顺序执行

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript"></script>I
<script type="text/javascript" src="../../script/jquery.js"></script>
<script type="text/javascript">
    window.onload=function () {
        alert("原生js的页面加载完成之后--1");
    }
    window.onload=function () {
        alert("原生js的页面加载完成之后--2");
    }
    window.onload=function () {
        alert("原生js的页面加载完成之后--3");
    }
    //全写
    // $(document).ready(function () {
    //
    // });
    //jquery的页面加载完成  之后
    $(function () {
        alert("jquery的页面加载完成之后--1");
    });
    $(function () {
        alert("jquery的页面加载完成之后--2");
    });
    $(function () {
        alert("jquery的页面加载完成之后--3");
    });
</script>
</head>
<body>
    <button>我是按钮</button>
        <iframe src="http://www.baidu.com"></iframe>
        <img src="http://www.baidu.com/1.jpn" alt=""/>
</body>
</html>>

jQuery中其他的事件处理方法:

click()

它可以绑定单击事件,以及触发单击事件

mouseover()

鼠标移入事件

mouseout()

鼠标移出事件

bind()

可以给元素一次性绑定一个或多个事件。

one()

使用上跟bind一样。但是one方法绑定的事件只会响应一次。

unbind()

跟bind方法相反的操作,解除事件的绑定

live()

也是用来绑定事件。它可以用来绑定选择器匹配的所有元素的事件。哪怕这个元素是后面动态创建出来的也有效

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.O1//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
    <title>Untitled Document</title>
    <link href="css/style.css" type="text/css" rel="stylesheet" />
    <script type="text/javascript" src="../../script/jquery.js"></script>
        <script type="text/javascript">
            $(function(){
                // $("h5").click(function () {//传function是绑定事件
                //     alert("h5单击事件==click方法绑定");
                // });
                //使用live绑定的单击事件
                $("h5").live("click",function () {
                    alert("h5单击事件==live方法绑定");
                });
                $('<h5 class="head">什么是jQuery?</h5>').appendTo($("#panel"));
                // $("button").click(function () {
                //     $("h5").click();
                // });
                //鼠标移入
                // $("h5").mouseover(function () {
                //     console.log("你进来了");
                // });
                //鼠标移出
                // $("h5").mouseout(function () {
                //     console.log("你出去了");
                // });
                //使用bind绑定事件
                // $("h5").bind("click mouseover mouseout",function () {//空格隔开
                //     console.log("这是bind绑定的事件");
                // });
                //使用one绑定事件
                // $("h5").one("click mouseover mouseout",function () {//空格隔开
                //     console.log("这是one绑定的事件");
                // });
                //使用unbind取消绑定事件
                // $("h5").unbind("mouseover mouseout");//无参,就都取消绑定
            });
        </script>
    </head>
    <body>
        <div id="panel">
            <h5 class="head">什么是jQuery?</h5>
            <div class="content">
            jQuery是继Prototype之后又一个优秀的JavaScript库,它是一个由John Resig创建于2006年1月的开源项目。jQuery凭借简洁的
            </div>
            <button>按钮</button>
        </div>
    </body>
</html>

事件的冒泡

什么是事件的冒泡?

事件的冒泡是指,父子元素同时监听同一个事件。当触发子元素的事件的时候,同一个事件也被传递到了父元素的事件里去 响应。

那么如何阻止事件冒泡呢?

在子元素事件函数体内,return false;可以阻止事件的冒泡传递。

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html>
     <head>
         <meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
         <title>Untitled Document</title>
         <style type="text/css">
             *{
                 margin: 0;
                 padding: 0;
             }
             body {
                 font-size: 13px;
                 line-height: 130%;
                 padding: 60px;
             }
             #content {
                 width: 220px;
                 border: 1px solid #0050D0;
                 background: #96E555;
             }
             span {
                 width: 200px;
                 margin: 10px;
                 background: #666666;
                 cursor: pointer;
                 color: white;
                 display: block;
             }
             p{
                 width: 200px;
                 background: #888;
                 color: white;
                 height: 16px;
             }
         </style>
         <script type="text/javascript" src="../../script/jquery.js"></script>
         <script type="text/javascript">
             $(function(){
                $("#content").click(function () {
                    alert("我是div");
                });
                $("span").click(function () {
                    alert("我是span");
                    return false;
                });
             })
         </script>
     </head>
     <body>
     <div id="content">
         外层div元素
         <span>内层span元素</span>
         外层div元素
     </div>
     <div id="msg"></div>
     <br><br>
     <a href="http://www.hao123.com">WWW.HAO123.COM</a>
     </body>
 </html>

javaScript事件对象

事件对象,是封装有触发的事件信息的一个javascript对象。

我们重点关心的是怎么拿到这个javasript的事件对象。以及使用。

如何获取呢javascript事件对象呢?

在给元素绑定事件的时候,在事件的function(event)参数列表中添加一个参数,这个参数名,我们习惯取名为event. 这个event就是javascript传递参事件处理函数的事件对象。

比如:


//1.原生javascript获取事件对象


window.onload=function () {
        document.getElementById("areaDiv").onclick=function (event) {
            console.log(event);
        };
    }

/2.jQuery代码获取事件对象

$(function () {
        $("#areaDiv").click(function (event) {
            console.log(event);
        });
    });

//3.使用bind同时对多个事件绑定同一个函数。怎么获取当前操作是什么事件。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.O1 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
    <title>Insert title here</title>
    <style type="text/css">
        #areaDiv {
            border: 1px solid black;
            width: 300px;
            height: 50px;
            margin-bottom: 10px;
        }
        #showMsg {
            border: 1px solid black;
            width:300px;
            height:20px;
        }
    </style>
    <script type="text/javascript" src="../../script/jquery.js"></script>
    <script type="text/javascript">
    //1.原生javascript获取事件对象
    // window.οnlοad=function () {
    //     document.getElementById("areaDiv").οnclick=function (event) {
    //         console.log(event);
    //     };
    // }
    //2.JQuery代码获取事件对象
    $(function () {
        // $("#areaDiv").click(function (event) {
        //     console.log(event);
        // });
        //3.使用bind同时对多个事件绑定同一个函数。怎么获取当前操作是什么事件?
        $("#areaDiv").bind("mouseover mouseout",function (event) {
            if (event.type=="mouseover"){
                console.log("bind绑定的移入事件");
            }else if (event.type=="mouseout"){
                console.log("bind绑定的移出事件");
            }
        });
    });
    </script>
</head>
<body>
    <div id="areaDiv"></div>
    <div id="showMsg"></div>
</body>
</html>

七、练习图片跟随

<!DOCTYPE html PUBLIC "-//W3c//DTD HTML 4.O1 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
    <title>Insert title here</title>
    <style type="text/css">
        body {
            text-align: center;
        }
        #small {
            margin-top: 150px;
        }
        #showBig {
            position: absolute;
            display: none;
        }
    </style>
    <script type="text/javascript" src="script/jquery.js"></script>
    <script type="text/javascript">
        $(function() {
            $("#small").bind("mouseover mouseout mousemove",function (event) {
                if (event.type=="mouseover"){
                    $("#showBig").show();
                }else if (event.type=="mouseout"){
                    $("#showBig").hide();
                }else if (event.type=="mousemove"){
                    console.log(event);
                    $("#showBig").offset({
                        left:event.pageX+10,
                        top:event.pageY+10
                    });
                }
            });
        });
    </script>
</head>
<body>
    <img id="small" src="img/small.png">
    <div id="showBig">
        <img src="img/big.png">
    </div>
</body>
</html>
相关文章
|
11月前
|
JavaScript 前端开发
jQuery学习(十二)—jQuery中对象的查找方法总结
jQuery学习(十二)—jQuery中对象的查找方法总结
|
存储 JavaScript 前端开发
举例jQuery里的十五种操作
举例jQuery里的十五种操作
74 0
|
1月前
|
存储 JavaScript 前端开发
jQuery 对属性的操作
【10月更文挑战第8天】
|
6月前
|
缓存 JavaScript
|
3月前
|
JavaScript
分别用jquery和js修改页面元素
分别用jquery和js修改页面元素
38 2
|
JavaScript
JQuery②1
JQuery②1
32 0
|
JavaScript 数据安全/隐私保护 索引
JQuery①中
JQuery①中
31 0
|
JavaScript 索引
JQuery①下
JQuery①下
53 0
|
JavaScript 前端开发 API
JQuery①上
JQuery①上
42 0
|
11月前
|
JavaScript 容器
【jQuery学习】—jQuery操作元素位置
【jQuery学习】—jQuery操作元素位置
下一篇
无影云桌面