一、引入JQuery、JQueryUI方法:

1.进入JQuery官网:https://jquery.com/

2.依据此图流程下载JQuery库:

jquery ui 曲线数据 jquery-ui.js_jquery

jquery ui 曲线数据 jquery-ui.js_ide_02

3.进入JQueryUI官网:https://jqueryui.com/

4.依据下图下载JQueryUI库:

jquery ui 曲线数据 jquery-ui.js_ide_03

5. 将JQuery库压缩包里的jquery-x.x.x.min.js拖入工程中,将JQueryUI库压缩包里的jquery-ui.min.js和jquery-ui.min.css拖入工程中

 

注意:因为JQueryUI库是依赖于JQuery库的,所以引入的时候必须先引入JQuery库

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>标题</title>
    <script src="jquery-3.3.1.min.js"></script>
    <script src="JQUI/jquery-ui.min.js"></script>
    <link href="JQUI/jquery-ui.min.css" type="text/css" rel="stylesheet"/>
</head>
<body>

</body>
</html>

完毕!

注意:JQueryUI库 有些方法必须是要求 在某个版本JQuery库下才可以使用,例如:你使用最新版本的JQuery库,但是JQueryUI还不支持最新版本,而导致JQueryUI某些方法使用不了,出现报错等问题,你需要去下载低版本的JQuery库,引入方式一样,把原本的JQuery库删除即可, 并且修改上面的那一行<script src="jquery-3.3.1.min.js></script>

二、正式开始讲解学习我觉得比较难的地方

1.事件冒泡:即事件会抵达目标地响应后,会传送给父容器们继续触发一次,注意是全部父容器都会触发它捆绑的任何事件,但是你必须满足条件才会触发,例如:

<div id="div1">
    <div id="div2">
        <button id="btn">按钮</button>
    </div>
</div>
$(document).ready(function(){
    $("#div1").dblclick(div1Click);
    $("#div2").click(div2Click);
    $("#btn").click(btnClick);
});

function div1Click(){
    console.log("div1");
}

function div2Click(){
    console.log("div2");
}

function btnClick(){
    console.log("btn按钮");
}

当点击按钮时,会发生(单击)冒泡, 所有上级 控件捆绑的(单击函数都会触发一次),从而div2的函数也会被执行,而div1的事件是双击事件故不会执行,亲测!

所以,事件冒泡准确地说是必须得同种类型的事件才会发生。

如果想阻止冒泡的发生可以这样写:

$(document).ready(function(){
    $("#div1").dblclick(div1click);
    $("#div2").click(div2click);
    $("#div1").click(btnclick);
});

function div1Click(event){
    console.log("div1");
    event.stopPropagation();//阻止冒泡事件
}

function div2Click(event){
    console.log("div2");
    event.stopPropagation();//阻止冒泡事件
}

function btnClick(event){
    console.log("btn按钮");
    event.stopPropagation();//阻止冒泡事件
}

2. 与冒泡很相似的一个,阻止触发默认事件,即类似于 a标签,如果给a标签 捆绑了点击 事件,它还会触发默认的href事件跳转页面,如果想不跳转的话就在点击事件 里面加入:

event.stopImmediatePropagation();//阻止之后同一时刻发生的事件 且 事件冒泡也阻止了

3. 关于Js的对象写法:(很懵。)

function Person(name) {
    var n = "nnnn";//内部变量
    var _this = {}
    _this.name = name;
    _this.sayHello = function () {
        alert("Hello world," + _this.name + "|" + n);
    }
    window.Person = Person;//提供给window调用,不然Person类无法被调用
    return _this;
}

function Teacher(name) {
    var _this = Person(name);//继承Person
    var superSay = _this.sayHello;//父类的sayHello方法
    var superName = _this.name;
    _this.sayHello = function () {
        superSay.call(this);//调用父类的sayHello方法
        alert("T_hello,"+ superName);
    }
    return _this;
}

var t = Teacher("fake");
t.sayHello();

4. setTimeout 和 setInterval :

//延迟调用函数setTimeout,延迟1000 ms
var timeout = setTimeout(function(){
    ...
}, 1000);

//销毁延时器
clearTimeout(timeout);

//循环执行器 1000 ms执行一次
var interval = setInterval(function(){
    ...
}, 1000);

//销毁循环执行器
clearInterval(interval);

5、与PHP服务器进行交互,也就是Ajax异步响应页面请求

以例子形式说明:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>AjaxHtml</title>
    <script src="jquery-3.3.1.min.js"></script>
    <script src="AjaxHtml.js"></script>
    <!--header("Access-Control-Allow-Origin: http://www.ttlsa.com");-->
</head>
<body>
<form>
        <input type="text" id="namevalue"/>
        <br/>
        <!--<button id="btn">Send</button>--><!-- button标签会自动刷新页面 而input就不会! -->
        <input type="button" onclick="sendInputName()" value="发送" />
        结果:<span id="result"></span>
</form>
</body>
</html>

实现一个发送输入框id=namevalue的数据给PHP服务器,然后 服务器的内容 传回来后设置到span标签上.

注意:有HTML文件必须要和PHP文件在同一个目录下,而且是要在Apache服务器的apached.config文件中的DocumentRoot="xxx"这个xxx目录 上,不然嘿嘿,找不到服务器404错误就 来了。

PHP服务器代码如下:

文件为:"AjaxService.php"

<?
if(isset($_GET['name'])){
    echo "hello:".$_GET['name'];
}else{
    echo "Args error";
}

JS代码如下(AjaxHtml.js):

$(document).ready(function () {
   $("#btn").click(function () {
       //由于不能跨域传输数据,所以要求html和php文件在一个目录下
       // console.log("发送给服务器name" + $("#namevalue").val());
       $.get("http://localhost/AjaxTest.php",{name:$("#namevalue").val()},function (data) {
          $("#result").text(data);
       });
   })
});

服务器的配置如下:

我的是用idea编辑 软件,挺好用的。

file - settings 然后一直选到下图,然后点"+"号添加一个服务器,设置的内容如下图,其他默认就好了。

jquery ui 曲线数据 jquery-ui.js_jquery ui 曲线数据_04

接着就可以运行你的PHP文件了,如果不出错就说明成功运行。

前提是你要启动这2个玩意:(变绿就说明正常了)

jquery ui 曲线数据 jquery-ui.js_jquery_05

这个软件是叫XAMPP,可以百度下载后就可以了。

在我另一篇文章有说明比较坑爹的地方:

启动Apache会有些坑,mysql如果原本有安装的话,也会出问题,这个可以百度,就是要你去删除mysql服务,才可以用它来启动mysql.

三、JQueryUI说明:

自己看文档吧,没什么可以说的,只能提醒你,JQueryUI的版本 必须匹配上正确的JQuery版本库,不然有的坑你,当测试的时候出现不如意的情况,一定要按F12查看console 是否出错,有很多原因都是因为方法找不到,没有这个方法,之类的坑爹错误。JQueryUI很强大, 大大地好!

进入JQueryUI官网:https://jqueryui.com/ 

学习使我 快乐!

老子又回来了!接下来简单说明一下JQueryUI的玩法:

1、According效果如下:

jquery ui 曲线数据 jquery-ui.js_html_06

jquery ui 曲线数据 jquery-ui.js_jquery ui 曲线数据_07

jquery ui 曲线数据 jquery-ui.js_jquery ui 曲线数据_08

2、AutoComplete:

jquery ui 曲线数据 jquery-ui.js_ide_09

jquery ui 曲线数据 jquery-ui.js_html_10

$(document).ready(function () {
    var availableTags = [
        "ActionScript",
        "AppleScript",
        "Asp",
        "BASIC",
        "C",
        "C++",
        "Clojure",
        "COBOL",
        "ColdFusion",
        "Erlang",
        "Fortran",
        "Groovy",
        "Haskell",
        "Java",
        "JavaScript",
        "Lisp",
        "Perl",
        "PHP",
        "Python",
        "Ruby",
        "Scala",
        "Scheme"
    ];
    $("#tags").autocomplete({
        source: availableTags
    });
});

3、DatePicker:

jquery ui 曲线数据 jquery-ui.js_html_11

jquery ui 曲线数据 jquery-ui.js_jquery ui 曲线数据_12

jquery ui 曲线数据 jquery-ui.js_ide_13

4、Dialog:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../jquery-3.3.1.min.js"></script>
    <script src="../jquery-ui.min.js"></script>
    <link href="../jquery-ui.min.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript">
        $(function(){
            $("#btn").button().on("click",function () {
                $("#div").dialog({
                    resizable: false
                });
            });
        })
    </script>
</head>
<body>
    <div style="display: none;" id="div">
        <p>这是一个对话框Dialog</p>
    </div>
    <a href="#" id="btn">按钮</a>
</body>
</html>

jquery ui 曲线数据 jquery-ui.js_jquery ui 曲线数据_14

5、Menu

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Menu</title>
    <!--<script src="../jquery-3.3.1.min.js"></script>-->
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script src="../jquery-ui.min.js"></script>
    <script src="Menu.js"></script>
    <link href="../jquery-ui.min.css" rel="stylesheet" type="text/css" />
    <style>
        .ui-menu:after{
            content:".";
            display:block;
            clear:both;
            visibility: hidden;
            line-height: 0;
            height: 0;
        }
        .ui-menu .ui-menu-item{
            display:inline-block;
            float:left;
            margin:0;
            padding:10px;
            width:100px;
        }
    </style>
</head>
<body>
    <ul id="uid">
        <li>
            <a href="#">Java</a>
            <ul>
                <li><a href="#">Jave EE</a></li>
                <li><a href="#">Jave SE</a></li>
                <li><a href="#">Jave ME</a></li>
            </ul>
        </li>
        <li>C#</li>
        <li>Java</li>
        <li>HTML</li>
    </ul>
</body>
</html>

jquery ui 曲线数据 jquery-ui.js_jquery_15

6、progressbar

jquery ui 曲线数据 jquery-ui.js_html_16

var pb;
var max = 100;
var current = 0;
$(document).ready(function () {
    pb = $("#pb");
    pb.progressbar({max:100});
    //设置时钟间隔100毫秒执行一次changepb
    setInterval(changepb, 100);
});

function changepb() {
    current++;
    if(current >= 100){
        current = 0
    }
    //将pb进度条的值设置为current
    pb.progressbar("option", "value", current);
}

jquery ui 曲线数据 jquery-ui.js_jquery ui 曲线数据_17

7、Slider

jquery ui 曲线数据 jquery-ui.js_jquery ui 曲线数据_18

var valueSpan,slider;
$(document).ready(function () {
    // $("#slider").slider();
    slider = $("#slider");
    valueSpan = $("#span");
    // slider.slider({
    //     //滑动条改变后
    //     change:function (event, ui) {
    //      //可通过直接从slider控件的option中的value取的当前滑动进度
    //         valueSpan.text(slider.slider("option","value"));
    //     }
    // });
    slider.slider({
        //滑动条改变中
        slide:function (event, ui) {
            valueSpan.text(ui.value);
        }
    });
});

jquery ui 曲线数据 jquery-ui.js_ide_19

8、spine

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Spinner</title>
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script src="../jquery-ui.min.js"></script>
    <!--<script src="Slider.js"></script>-->
    <link href="../jquery-ui.min.css" rel="stylesheet" type="text/css" />
    <script>
        $(function () {
            $("#ip").spinner();
            $("#ip").spinner("value","10");//设置默认值为10
            $("#btn").click(function () {
                alert($("#ip").spinner("value"));
            })
        });
    </script>
</head>
<body>
    <input id="ip" />
    <button id="btn">get value</button>
</body>
</html>

jquery ui 曲线数据 jquery-ui.js_html_20

9、Table

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Widgets的Tabs使用方法</title>
    <!--效果是点击菜单换页面的效果-->
    <!--<script src="../jquery-3.3.1.min.js"></script>-->
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script src="../jquery-ui.min.js"></script>
    <link href="../jquery-ui.min.css" rel="stylesheet" type="text/css" />
    <script>
        $(function () {
            $("#tabs").tabs();
        });
    </script>
</head>
<body>
    <div id="tabs">
        <ul>
            <li><a href="#hello1">hello1</a></li>
            <li><a href="#hello2">hello2</a></li>
            <li><a href="#hello3">hello3</a></li>
        </ul>
        <!--//注意下面的这些id必须与上面href指定的一样,一一对应-->
        <!--//而且div必须放在 <div id="tabs">下-->
        <p id="hello1">
            hello1
            hello
            hello
            hello
            hello
            hello
        </p>
        <div id="hello2">
            hello2
            hello
            hello
            hello
            hello
            hello
        </div>
        <div id="hello3">
            hello3
            hello
            hello
            hello
            hello
            hello
        </div>
    </div>
</body>
</html>

jquery ui 曲线数据 jquery-ui.js_jquery ui 曲线数据_21

10、Button

jquery ui 曲线数据 jquery-ui.js_html_22

jquery ui 曲线数据 jquery-ui.js_jquery ui 曲线数据_23

jquery ui 曲线数据 jquery-ui.js_html_24

完事。