我的前端杂记录-1

为了适应上海的工作任务,重新温故一下前端方面的知识点。虽然不是专业的前端,

1. 首先谈一谈一点小小的习惯上的改变:

在 HTML5 中,不必在 <script> 标签中使用  type="text/javascript"

<head>
<script src="jquery.js"></script>
</head>

,JavaScript 是 HTML5 以及所有现代浏览器中的默认脚本语言!

2.  关于动画效果方面,结论:如果您希望在一个涉及动画的函数之后来执行语句,请使用 callback 函数。

比如动画需要一定事件来完成,但是js是逐行执行的语言,A行代码执行完,下一行B行代码就会直接执行,恰巧A行代码是个动画,没执行完,B行代码执行完了。但是你希望A效果后,执行B效果,那么这时候加cb函数。这样就可以在A函数100%完成之后,再做B函数了。

3.约定好变量风格,如果获取的是JQuery对象,那么需要在变量前加$来区分,如果是JS对象,不加$。JQ对象转JS对象,var obj = $obj.get(index);例如 :

 var $idElement = $("#id"); 

var  idElement=$idElement.get(0);

console.log(idElement.checked); //调用JS的属性

JS对象转DOM对象:$(jsObj)即可

var jsobj = document.getElementById('xxId');   
var $obj = $(jsobj); 

4.关于$(funciton(){}) 的另一个知识点。

window.onload = function(){} 网页中所有的内容加载完毕后才能执行,包括图片,音频。

<script>
    //window.onload 无法编写多个。
    window.onload = function () {
        alert('test01');
    };
    window.onload = function () {
        alert('test02');
    }
</script>
<script>
    //和上面不同,这2个都会被执行。
    $(document).ready(function () {
        alert('hello world!')
    });
    $(document).ready(function () {
        alert('world');
    });
</script>

而jquery的这种写法,是再DOM结构加载完毕后就执行,而不需要等待加载图片等dom关联的东西。

注释:ready(fn):

当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。

这是事件模块中最重要的一个函数,因为它可以极大地提高web应用程序的响应速度。

简单地说,这个方法纯粹是对向window.load事件注册事件的替代方法。通过使用这个方法,可以在DOM载入就绪能够读取并操纵时立即调用你所绑定的函数,而99.99%的JavaScript函数都需要在那一刻执行。

有一个参数--对jQuery函数的引用--会传递到这个ready事件处理函数中。可以给这个参数任意起一个名字,并因此可以不再担心命名冲突而放心地使用$别名。

请确保在 <body> 元素的onload事件中没有注册函数,否则不会触发+$(document).ready()事件。

可以在同一个页面中无限次地使用$(document).ready()事件。其中注册的函数会按照(代码中的)先后顺序依次执行。

5.关于on 和click() 的一些知识:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../js/jquery-3.3.1.js"></script>
</head>
<body>
    <button class="btn">添加</button>
    <ul>
        <li>
            <button class="del">删除</button>
        </li>
        <li>
            <button class="del">删除</button>
        </li>
    </ul>
    <script>
        $(".btn").on('click',function () {
            $("ul").append('<li><button class="del">删除</button></li>')//动态添加的删除按钮
        });

        /**
         * 原因:通过on或click绑定的事件只对当前存在的元素有效
             即on前面的元素必须在页面加载的时候就已经存在dom里
             所以后添加的类名为del的按钮无效
        $(".del").on('click',function () {
           // $(this).remove();//button remove ,而不是li remove
            $(this).parent().remove()//找到当前被点击的按钮并删除这一行无效
        });
         */


 /*
     //整个都被删除了。这里将事件绑定在ul上。
        $('ul').click(function(){
            $(this).parent().remove();
        });*/


        /**
         * http://jquery.cuishifeng.cn/on.html
         * 从该连接中阅读的关键信息: selector(第2个参数) :一个选择器字符串过滤选定的元素,
         * 该选择器的后裔元素将调用处理程序。如果选择是空或被忽略,当它到达选定的元素,事件总是触发。
         *
         * 这里有效,因为 该语法是通过父元素绑定到子元素中。
         * 这里的this会指向子元素.del ,
         * 只有子元素事件才能触发父元素的相同事件。
         */
        $("ul").on('click','.del',function () {
            $(this).parent().remove();
        });
    </script>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/wdw18668109050/article/details/82819702