jq基础笔记02

1.1  复习jQuery操作DOM

jQuery课程的目标:学会使用jQuery设计常见效果

选择器

基本选择器:#id 、.class 、element、* 、

层级选择器:空格、>、+、~

       基本过滤选择器::first、:last、:eq(index)、:lt(index)、:gt(index)、:odd奇数、:even

       筛选选择器:.eq(index)、.children()、.parent()、.siblings()、.find()

       动画:show、hide、fadeIn、fadeOut、fadeTo(透明度)、slideDown、slideUp、slideToggle

                 animate

       DOM操作:.css()、addClass(“className”)、removeClass()、toggleClass

                       .attr()、removeAttr()、.val()、.html(“<p></p>”)、text()

                       node.append(“<p>我是追加的内容</p>”)、prePend()

1.2  元素操作

1.2.1   高度和宽度    

$(“div”).height();          // 高度

$(“div”).width();                 // 宽度

.height()方法和.css(“height”)的区别:

$(window).width()表示窗口的可视区的宽度

1.                  返回值不同,.height()方法返回的是数字类型(20).css(“height”)返回的是字符串类型(20px),因此.height()方法常用在参与数学计算的时候  可用parseInt()

1.2.2   坐标值

注意

$(“div”).offset(); 特殊 只相对于文档(不管是不是子绝父相,设置值要写json格式)    // 获取或设置坐标值  设置值后变成相对定位 position:relative;

$('#div2').offset().left;   获取值

$('#div2').offset().top;   获取值

 

$("p:last").offset({ top: 10, left: 30});  设置值

 

$(“div”).position();  (根据子绝父相    // 获取坐标值 子绝父相 只能读取不能设置

$('#div2').position().left;

$('#div2').position().top;

 

1.2.3   滚动条(滚动事件)

$(“div”).scrollTop();           // 相对于滚动条顶部的偏移

$(“div”).scrolllLeft();     // 相对于滚动条左部的偏移(获取和设置的方法)

用法:var l=$("div").scrollLeft();

     var r=$("div").scrollTop();

   $("div").scrollLeft(l+10).scrollTop(r+10);

 

案例:两次跟随的广告 $(".left,.right").stop().animate({"top" : $(document).scrollTop()+50},600);  滚动的高度+top

案例:防腾讯固定导航栏   var H = $(".top").height();

            $(window).scroll(function() {

                var docSccrollTop= $(document).scrollTop();

                if(docSccrollTop> H){

                    $(".nav").css({"position":"fixed","top":0});

                    // 此时 nav的位置固定,如果不设置 main部分的margin-top的话,将有一部分内容被挡住 nav的高度+开始设置的20

                    $(".main").css("margin-top",106);

                }else{

                    $(".nav").css({"position":"static"});  /*静态定位*/

                    $(".main").css("margin-top",20);

                }

            });

 

1.3  jQuery事件(强烈推荐使用on)

1.3.1   绑定

click/mouseenter/blur/keyup

// 绑定事件

bind:$node.bind(“click”,function(){});

// 只触发一次

one :  $node.one(“click”,function(){});

 

注意:delegateon绑定三个参数时是顺序是不一样的

delegate :$node.delegate(“p”,”click”,function(){});

on: $node.on(“click”,”p”,function(){});  $node为父元素

1.3.2   解绑

unbind、undelegate

off

1.3.3   触发

click  : $(“div”).click();

trigger:触发事件,并且触发浏览器默认行为   自动触发

triggerHandler:不触发浏览器默认行为   默认行为有a链接,submit有提交刷新

注意:参数顺序不能变,但可省略

### 3.2 绑定事件的方式 bind方式(不推荐,1.7以后的jQuery版本被on取代,所以强烈推荐使用on方法)

+ 语法格式:.bind( eventType [, eventData ],handler )  

+ 参数说明

    - 第一个参数:事件类型    'click'   'mouseleave'

    - 第二个参数:传递给事件响应方法的数据对象,可以省略。  一般省略

    - 事件响应方法中获取数据方式: e.data

    - 第三个参数:事件响应方法

**第二个参数可以省略。**

 

```

    例如:   

   $("p").bind("click", function(e){

        //事件响应方法

    });

```

 

 

### 3.3 delegate方式(推荐,性能高,支持动态创建的元素

+ 语法格式:$(selector).delegate( selector, eventType,handler )

+ 语法说明:

    * 第一个参数:selector子选择器

    * 第二个参数:事件类型

    * 第三个参数:事件响应方法

 

```

    例如:  

   $(".parentBox").delegate("p", "click",function(){

        // .parentBox下面的所有的p标签绑定事件

    });

```

*优势:效率较高*

 

### 3.4 on方式(最现代的方式,兼容zepto,强烈建议使用的方式)

+ jQuery1.7版本后,jQueryon统一了所有的事件处理的方法

+ 语法格式:$(selector).on( events [,selector ] [, data ], handler )

+ 参数介绍:

    * 第一个参数:events,事件名

    * 第二个参数:selector,类似delegate

    * 第三个参数: 传递给事件响应方法的参数

    * 第四个参数:handler,事件处理方法

```

    例如:

    //绑定一个方法

    $( "#dataTabletbody tr" ).on( "click", function() {

      console.log( $( this).text() );

    });

 

    //给子元素绑定事件

    $( "#dataTabletbody" ).on( "click", "tr", function() {

      console.log( $( this ).text() );

    });

 

    //绑定多个事件的方式要记一下  (用json 的方法就行)

    $("div.test" ).on({

      click: function() {

        $( this).toggleClass( "active" );

      }, mouseenter:function() {

        $( this).addClass( "inside" );

      }, mouseleave:function() {

        $( this).removeClass( "inside" );

      }

    });

```

 

### 3.5 one只绑定一次事件的方式

+ .one( events [, data ], handler )

```

    例如:

    $( "p").one( "click", function() {

      alert( $( this).text() );

    });

```

 

### 3.6 解绑事件

+ unbind解绑 bind方式绑定的事件( jQuery1.7以上被 onoff代替)

    *$(selector).unbind();         //解绑所有的事件

    *$(selector).unbind("click"); //解绑指定的事件

 

+ undelegate解绑delegate事件

    * $("p" ).undelegate();           //解绑所有的delegate事件

    * $("p" ).undelegate( "click" );   //解绑所有的click事件

   

```

    例如:

    var foo = function (){

      // Code to handlesome kind of event

    };

    

    // ... Now foo will becalled when paragraphs are clicked ...

    $( "body").delegate( "p", "click", foo );

    

    // ... foo will nolonger be called.

    $( "body").undelegate( "p", "click", foo );

```

 

+ off解绑on方式绑定的事件

    * $("p" ).off();

    * $("p" ).off( "click", "**" );    // 解绑所有的click事件,两个\*表示所有

    * $("body" ).off( "click", "p", foo );

   

```

    案例1

    var foo = function() {

      // Code to handlesome kind of event

    };

    

    // ... Now foo will becalled when paragraphs are clicked ...

    $( "body").on( "click", "p", foo );

    

    // ... Foo will nolonger be called.

    $( "body").off( "click", "p", foo );

 

    案例2:(了解)解绑命名空间的方式:

    var validate =function() {

      // Code to validateform entries

    };

    

    // Delegate eventsunder the ".validator" namespace

    $( "form").on( "click.validator", "button", validate );

    

    $( "form").on( "keypress.validator", "input[type='text']", validate);

    

    // Remove eventhandlers in the ".validator" namespace

    $( "form").off( ".validator" );

```

 

### 3.7 触发事件

+ 简单事件触发

    *$(selector).click(); //触发 click事件

+ trigger方法触发事件

    * $("#foo" ).trigger( "click" );

+ triggerHandler触发事件响应方法,不触发浏览器行为

    * $("input" ).triggerHandler( "fo

1.4  jQuery事件对象介绍(不理解???==已理解

event.stopPropagation()           //阻止事件冒泡

event.preventDefault();            //阻止默认行为

1.5 jQuery补充

需要注意的地方:

    animate动画:不支持背景的动画效果(后面引入api就可以实现了)

    animate动画支持的属性列表

    参考手册(不全)、

    在线文档:

w3school:http://www.w3school.com.cn/jquery/index.asp

         jQuery官网http://jquery.com/

    $()的几种常用用法:

         1.$(“#id”) 选择某个元素,返回值为jQuery对象

         2.$(this) 将DOM对象转换成jQuery对象

         3.$(“<div></div>”) 创建元素,返回值为jQuery对象

         4.$(function(){}); 入口函数的简写方式

$("div").html() 获取内容的时候,只返回匹配到的第一个元素的数据

.html().text()的区别

document.write($("div").html());    // 结果 111111 只返回第一个元素的值

document.write($("div").text());    // 结果  只返回所有元素的值1111112222222223333334444

链式编程问题:

$("div").html() 后面就不能继续链式了?

为什么?函数返回值问题!

$node.each(function(index,element){});

$.each([1,2,3,5,6,7], function (i,v) {

  console.log(i + " : " + v);

});

map返回数组(了解)

$(“li”).map(function(){

    return $(this).text();

});

1.5.1   数据缓存

$(“div”).data(“index”);       // 获取数据index的值

注意:

html里面的data 属性,例如:data-ROLE,jQuery获取的时候用:$(“div”).data(“role”);

当使用jQuery设置data属性的时候,例如:$(“div”).data(“UPCASE”,123); ,那么获取的时候,要使用:$(“div”).data(“UPCASE”);

<div data-role="page"data-last-value="43" data-hidden="true"data-options='{"name":"John"}'>注意HTML属性不区分大小写</div>

$( "div" ).data( "lastValue" )=== 43;

lastValue -> data-last-value

1.5.2   .data()跟.attr() 方法的区别:

1.获取数据的时候,attr方法需要传入参数,data方法可以不传入参数,这时候获取到的是一个js对象,即使没有任何data属性。

2. 获取到的数据类型不同,attr方法获取到的数据类型是字符串(String),data方法获取到的是相应的类型。

3. data方法获取到数据之后,我们使用一个对象来接收它,那么就可以直接操作(设置值或获取值)这个对象,而attr方法不可以。

    并且通过这种方式,要比.data(key,value)的方式更高效!

4.data-attribute属性会在页面初始化的时候放到jQuery对象,被缓存起来,而attr方法不会。

1.5.3   多库共存

同一个页面,引入包含$变量的其他js库,保证它们不发生命名冲突。

// other_lib.js 包含$

<script src="other_lib.js"></script>

<script src="jquery-1.11.1.js"></script>

<script>

    $.noConflict();

    // 可以使用其他库的$符号了

    // 使用jQuery

    jQuery(document).ready(function(){});

    </script>

 

1.5.4   jQuery优势:

1.    书写简洁、代码优雅

2.    Write Less,Do More

3.    强大的选择器,支持CSS1-3所有的选择器

4.    浏览器兼容性好,兼容IE6、7、8

5.    统一的入口,降低了学习、记忆成本

6.    强大的动画效果、事件支持

7.    开源、免费

8.    插件丰富,可扩展性强

 

1.6  jQuery插件机制

jQuery.color.js

jQuery官网插接教程:http://learn.jquery.com/plugins/basic-plugin-creation/

联系我们的手机

两种方式:

    $.log =function(){};

    $.fn.log= function(){};

自定义选择器:

jQuery.extend(jQuery.expr[':'], {
      "class-itcast":function(ele) {
        return jQuery(ele).hasClass("itcast");
      }

});
$(":class-itcast").css("background","pink");

 

1.6.1   常用插件介绍

jQuery.lazyload.js

1.6.2   插件使用:

查看API文档,了解插件的功能,提供的方法和参数。

插件依赖版本

1.    引用jQuery

2.    引用插件

3.    使用插件

1.6.3   怎么写插件

演示jQuery.lxCfbg.js (自己的插件)

(function ($) {

   $.fn.lxCfbg = function (options) {

        // 合并参数

        varopts = $.extend({

           "color": "#000",

           "font-size": "16px",

           "background-color": "#fff"

        },options);

       $this.css({

           "color": opts.color,

           "font-size": opts["font-size"],

           "background-color": opts["background-color"]

        });

       return $this;

    };

})(jQuery);

1.7  jQueryUI

jQueryUI教程

【CNN-GRU-Attention】基于卷积神经网络和门控循环单元网络结合注意力机制的多变量回归预测研究(Matlab代码实现)内容概要:本文介绍了基于卷积神经网络(CNN)、门控循环单元网络(GRU)与注意力机制(Attention)相结合的多变量回归预测模型研究,重点利用Matlab实现该深度学习模型的构建与仿真。该模型通过CNN提取输入数据的局部特征,利用GRU捕捉时间序列的长期依赖关系,并引入注意力机制增强关键时间步的权重,从而提升多变量时间序列回归预测的精度与鲁棒性。文中涵盖了模型架构设计、训练流程、参数调优及实际案例验证,适用于复杂非线性系统的预测任务。; 适合人群:具备一定机器学习与深度学习基础,熟悉Matlab编程环境,从事科研或工程应用的研究生、科研人员及算法工程师,尤其适合关注时间序列预测、能源预测、智能优化等方向的技术人员。; 使用场景及目标:①应用于风电功率预测、负荷预测、交通流量预测等多变量时间序列回归任务;②帮助读者掌握CNN-GRU-Attention混合模型的设计思路与Matlab实现方法;③为学术研究、毕业论文或项目开发提供可复现的代码参考和技术支持。; 阅读建议:建议读者结合Matlab代码逐模块理解模型实现细节,重点关注数据预处理、网络结构搭建与注意力机制的嵌入方式,并通过调整超参数和更换数据集进行实验验证,以深化对模型性能影响因素的理解。
下载前必看:https://pan.quark.cn/s/da7147b0e738 《商品采购管理系统详解》商品采购管理系统是一款依托数据库技术,为中小企业量身定制的高效且易于操作的应用软件。 该系统借助VC++编程语言完成开发,致力于改进采购流程,增强企业管理效能,尤其适合初学者开展学习与实践活动。 在此之后,我们将详细剖析该系统的各项核心功能及其实现机制。 1. **VC++ 开发环境**: VC++是微软公司推出的集成开发平台,支持C++编程,具备卓越的Windows应用程序开发性能。 在该系统中,VC++作为核心编程语言,负责实现用户界面、业务逻辑以及数据处理等关键功能。 2. **数据库基础**: 商品采购管理系统的核心在于数据库管理,常用的如SQL Server或MySQL等数据库系统。 数据库用于保存商品信息、供应商资料、采购订单等核心数据。 借助SQL(结构化查询语言)进行数据的增加、删除、修改和查询操作,确保信息的精确性和即时性。 3. **商品管理**: 系统内含商品信息管理模块,涵盖商品名称、规格、价格、库存等关键字段。 借助界面,用户能够便捷地录入、调整和查询商品信息,实现库存的动态调控。 4. **供应商管理**: 供应商信息在采购环节中占据重要地位,系统提供供应商注册、联系方式记录、信用评价等功能,助力企业构建稳固的供应链体系。 5. **采购订单管理**: 采购订单是采购流程的关键环节,系统支持订单的生成、审批、执行和追踪。 通过自动化处理,减少人为失误,提升工作效率。 6. **报表与分析**: 系统具备数据分析能力,能够生成采购报表、库存报表等,帮助企业掌握采购成本、库存周转率等关键数据,为决策提供支持。 7. **用户界面设计**: 依托VC++的MF...
【DC-AC】使用了H桥MOSFET进行开关,电感器作为滤波器,R和C作为负载目标是产生150V的双极输出和4安培(双极)的电流(Simulink仿真实现)内容概要:本文档围绕一个基于Simulink的电力电子系统仿真项目展开,重点介绍了一种采用H桥MOSFET进行开关操作的DC-AC逆变电路设计,结合电感器作为滤波元件,R和C构成负载,旨在实现150V双极性输出电压和4A双极性电流的仿真目标。文中详细描述了系统结构、关键器件选型及控制策略,展示了通过Simulink平台完成建模与仿真的全过程,并强调了参数调整与波形分析的重要性,以确保输出符合设计要求。此外,文档还提及该仿真模型在电力变换、新能源并网等领域的应用潜力。; 适合人群:具备电力电子基础知识和Simulink仿真经验的高校学生、科研人员及从事电力系统、新能源技术等相关领域的工程技术人员;熟悉电路拓扑与基本控制理论的初级至中级研究人员。; 使用场景及目标:①用于教学演示H桥逆变器的工作原理与滤波设计;②支撑科研项目中对双极性电源系统的性能验证;③为实际工程中DC-AC转换器的设计与优化提供仿真依据和技术参考;④帮助理解MOSFET开关行为、LC滤波机制及负载响应特性。; 阅读建议:建议读者结合Simulink模型文件同步操作,重点关注H桥驱动信号生成、电感电容参数选取及输出波形的傅里叶分析,建议在仿真过程中逐步调试开关频率与占空比,观察其对输出电压电流的影响,以深化对逆变系统动态特性的理解。
【优化调度】基于遗传算法的公交车调度排班优化的研究与实现(Matlab代码实现)内容概要:本文围绕基于遗传算法的公交车调度排班优化展开研究,利用Matlab进行代码实现,旨在通过智能优化算法解决公共交通系统中的调度难题。文中详细阐述了遗传算法在公交车发车频率、线路排班、司机分配等实际问题中的建模与应用过程,通过设定适应度函数、编码方式、交叉与变异策略,实现对多目标(如运营成本最小化、乘客等待时间最短化)的优化求解。同时,结合实际运行数据进行仿真验证,展示了该方法相较于传统调度方式在效率与经济性方面的显著优势。; 适合人群:具备一定Matlab编程基础,从事交通运输、城市规划、智能优化算法研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于城市公交系统的日常排班与动态调度优化;②作为智能交通系统(ITS)中调度模块的核心算法研究;③为高校相关课程提供算法实践案例,帮助理解遗传算法在现实复杂调度问题中的具体实现路径。; 阅读建议:建议读者结合文中Matlab代码逐段分析算法实现细节,重点关注染色体编码设计与适应度函数构建逻辑,并尝试在不同规模数据集上进行仿真实验,以深入掌握遗传算法参数调优技巧及其在调度问题中的泛化能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值