美文网首页
JQ的应用

JQ的应用

作者: benbensheng | 来源:发表于2019-04-11 09:01 被阅读0次

    1.点击1变红,点击2变红但是1红去掉

    image.png
    <style>
        .bgcolor{
            background-color:red;
        }
    </style>
       <ul>
           <li class="ben">1</li>
           <li class="ben">2</li>
           <li class="ben">3</li>
           <li class="ben">4</li>
       </ul>
    <script>
    $(function(){
        $(".ben").click(function(){       
           $(this).addClass("bgcolor").siblings().removeClass("bgcolor");
         })
    })   
    </script>
    

    2.jq append后无法获取元素

    jquery.on()事件来获取未加载页面元素内容

    //append添加后的需要要用on才能获取
      $("body").on("click",".btn_delete",function(){
          $(this).parentsUntil(".panel-default").remove();
            var id=$(this).attr("data-id");
            $.get("/dodelete",{"id":id},function(result,status){
                if(result=="1"){
                  alert("删除成功");
                }
            })
       })
     例如:
    $(".btn_delete").click(function(){
      $(this).parentsUntil(".panel-default").remove();
    })
    则不行
    

    3.点击按钮删除内容

      <div class="panel panel-default">
           <div class="panel-body">
               <h4>姓名:{{=username }}</h4>
               <P>内容:{{=content }}</P>
               <p style="float: right">时间:{{=datetime }}</p>
               <button type="button" class="btn btn-danger btn_delete" data-id="{{=id}}">删除</button>
           </div>
       </div>
    
    
    $(".btn_delete").click(function(){
      $(this).parentsUntil(".panel-default").remove();
    })
    

    3.清空内容

    <div id="modelBox">
             <div class="panel panel-default">
           <div class="panel-body">
               <h4>姓名:{{=username }}</h4>
               <P>内容:{{=content }}</P>
               <p style="float: right">时间:{{=datetime }}</p>
               <button type="button" class="btn btn-danger btn_delete" data-id="{{=id}}">删除</button>
           </div>
       </div>
          <div class="panel panel-default">
           <div class="panel-body">
               <h4>姓名:{{=username }}</h4>
               <P>内容:{{=content }}</P>
               <p style="float: right">时间:{{=datetime }}</p>
               <button type="button" class="btn btn-danger btn_delete" data-id="{{=id}}">删除</button>
           </div>
       </div>
     </div>
    
     $("#modelBox").html("");   //清空
    

    4.单独设置一个属性存储数值,在获取属性值

          <% for(var i=0;i<pageNumber;i++){ %>
                      <li class="btn_page" data-page="<%=i%>"><a href="#"><%=i%></a></li>
                      <% } %>
    
      $("body").on("click",".btn_delete",function(){ 
            var id=$(this).attr("data-id");
       })
    

    5.ajaxStart和ajaxStop

    • ajaxStart:AJAX 请求开始时执行函数
    • ajaxStop:AJAX 请求结束时执行函数
    <div class="loading">
        <p><img src="./images/data-loading.gif" alt="数据装载中" /></p>
        <p>数据装载中......</p>
    </div>  
    <button value="点击" id="btn">点击</button>
    
                    $("#btn").click(function(){
                        $.get("/do",function(result){
                            alert("1");
                        })
                    })
    
                    $(".loading").ajaxStart(function(){
                        $(this).css("visibility","visible"); 
                        $(this).animate({
                            opacity: 1
                        },0);
                    }).ajaxStop(function(){
                        alert("2");
                        $(this).animate({
                            opacity: 0
                        },500);
                    });
            
    

    6. 设置样式到style

    .css("a","b");
    直接将样式加入style里里面可用于设置显示或隐藏
    <p style="a:b;"> </p>

    7.animate的使用

    animate(params,[speed],[easing],[fn])

    • params:一组包含作为动画属性和终值的样式属性和及其值的集合
    • speed:三种预定速度之一的字符串("slow","normal", or "fast")或表示动画时长的毫秒数值(如:1000)
    • easing:要使用的擦除效果的名称(需要插件支持).默认jQuery提供"linear" 和 "swing".
    • fn:在动画完成时执行的函数,每个元素执行一次。
    <div class="block" style="display:inline-block;position:absolute;left:100px;">111</div>
    .animate({left: '+=50px'}, "slow"); //执行后left:150px;
    .animate({left: '+50px'}, "slow");  //执行后left:+50px;
    
    • 使用left和right要设置position:absolute;
    • .animate的实质:将css的样式加入style标签,然后动态的变化,比如width: "90%"将从0增加到90%

    8.获取select选择的值

    select表示下拉框,下拉框的每一项都是一个option,option开始结尾标签中的内容会显示在页面上,value属性的值则是用于在JQuery中用val方法获取并发送给服务器的。定义了selected的属性值为selected时,表示当前option被选中
    change()方法

    <div id="carname">
            <select>
                <option value="" selected="selected">请选择汽车厂商</option>
                <option value="BMW">宝马</option>
                <option value="Audi">奥迪</option>
                <option value="VW">大众</option>
            </select>
            <span>汽车名称</span>
    </div>
    
    
    var carname =$("#carname").children("select");
    carname.change(function(){
      var carnameValue=$(this).val(); //获取到的是value属性的值
    }
    

    9.下拉框自动生成

    可以直接$(“<option></option>”)的方法来建立下拉框中的选项,然后用appendTo/append这样的方法加入到下拉框中

    
        <div id="cartype">
            <select></select>
            <span>汽车类型</span>
        </div>  
    
    var cartype=$("#cartype").children("select");
    for(var i=0;i<carTypeArr.length;i++){
         $("<option value='"+carTypeArr[i]+"'"+ ">"+carTypeArr[i]+"</option>").appendTo(cartype);
    或者
         cartype.append($("<option value='"+carTypeArr[i]+"'"+ ">"+carTypeArr[i]+"</option>"));
        }
    

    10.data方法

    可以用于缓存数据。缓存可以提高系统的运行效率,降低服务器端的负荷

    <div></div>
    $("div").data("blah");  // undefined
    $("div").data("blah", "hello");  // blah设置为hello
    $("div").data("blah");  // hello
    $("div").data("blah", 86);  // 设置为86
    $("div").data("blah");  //  86
    $("div").removeData("blah");  //移除blah
    $("div").data("blah");  // undefined
    

    11.给表格设置奇偶不同的颜色

        $("tbody tr:odd").css("background-color","#ECE9D8");
        或者
    $("tbody tr:even").css("background-color","#ECE9D8");
    

    12. .html();

    • .html("");清空所以内容
    • .html();获取内容

    13.注册事件on和触发事件trigger

    有些事件浏览器自带如click可使用on注册一个事件

    <button id="btn">点击</button>
    
     $("#btn").on("click",function(){
            alert("1");
    })
    给btn注册了一个click事件,这个事件当鼠标点击就会触发
    
     $("#btn").on("ben",function(){
            alert("1");
         })
     $("#btn").click(function(){
             $("#btn").trigger('ben');
    })
    给btn注册了一个ben事件,用.trigger('ben')方法触发
    

    14. 键盘事件

    图片.png
    <input type="text">
    
     $("input").keyup(function(event){
        var keycode = event.keyCode;
        console.log(keycode);
    })
    

    15.input标签的事件

    • focus 获取焦点
    • change 输入域改变
    • blur 失去焦点
    • select 选择
    主动去触发
      $(selector).trigger("select")
    触发后使用
      $(selector).select(function(){
    
    })
    

    15. 事件冒泡

    子div与父div绑定同一个事件,当触发子div事件父div也会触发

    <h1>事件冒泡</h1>
    <div class="div1">div1
        <div class="div2"> div2
            <div class="div3">div3
                <button id="btn">点击</button>
            </div>
        </div>
    </div>
    
    $(function() {
            $(".div1").click(function(){
            $(this).css("background-color","red");
        })
        $(".div2").click(function(){
            $(this).css("background-color","green");
             //event.stopPropagation();
             //return false;
        })
      })
    

    加了event.stopPropagation();或者return false;

    01.gif
    没加event.stopPropagation();或者return false;
    02.gif

    16.编辑表格

    image.png

    17.return false的作用

    <h1>事件冒泡</h1>
    <div class="div1">div1
        <div class="div2"> div2
            <div class="div3">div3
                <button id="btn">点击</button>
            </div>
        </div>
    </div>
    
    $(".div1").click(function(){
                     alert("2");
            $(this).css("background-color","red");
            $(".div2").click(function(){
                $(this).css("background-color","green");
                    alert("3");
                 return false;
            })
            alert("1");
        })  
    
    

    加了return false;

    [图片上传中...(04.gif-a3ccde-1554905700554-0)]
    没加return false;
    04.gif

    18.JQuery的函数返回

    大部分方法都会返回执行这个方法的JQuery对象,因此可以采用链式方法的写法来编写给予JQuery的代码

    var inputObj=$("<input type='text'>").css({
    "background-color":tdObj.css("background-color"),
    "border-width":0,
    "font-size":"16px"
    })
    返回$("<input type='text'>")对象
    

    19.jq的事件环

    image.png
    05.gif
    <button id="btn1">点击1</button>  
    $("#btn1").click(function(){
            var name="ben";
            setTimeout(function(){
                alert(name);
            },2000); //两秒后执行
    })
    

    不是简单的向外暴露,btn1点击后再点击btn2没有反应(无法调用btn1里面的函数)

    <button id="btn1">点击1</button>   
    <button id="btn2">点击2</button>   
    $("#btn1").click(function(){
            var name="ben";
            function ben(){
                alert(name);
            }
            setTimeout(ben,2000); //两秒后执行
        })
        
        $("#btn2").click(function(){ 
            ben();
        })
    
    
    

    相关文章

      网友评论

          本文标题:JQ的应用

          本文链接:https://www.haomeiwen.com/subject/ghcliqtx.html