javascript 高级 -- jQuery-事件绑定

事件的处理程序在js当中很重要的。事件驱动是js的重要组成部分。在js中,有html中处理程序,dom0级,dom2级 事件处理程序。我们经常用dom0级来绑定事件。比如:

    var btn = document.getElementById("btn")

          btn.onclick = function () {

                alert("点击事件")

};

直接在元素节点里绑定事件名。element.on+"事件名"=回调函数。我们可以在回调函数体内进行相关操作。在dom0级事件中只能绑定一次事件.

我们在事件程序中,会产生事件对象event.这个很重要的。因为我们可以在事件的回调函数里,传入事件对象e来进行操作。来可以找到我们需要的对象。比如是e.target和e.currentTarger的区别。还有事件代理事件是我们的经常用到。比如在ajax请求中和for循环,在定时器中,代码执行的顺序,我们要经常关注的页面加载的时候和代码执行的时候,我们有时候代码执行完了,但是数据还没有出来,我们需要用到的事件委托。具体的语法是在jquery框架我们是经常事件委托。先把事件委托在父级上,可以用实际触发的子级标签通过冒泡原理让父级去触发执行回调函数,这样可以让父级下的所有子级都会有实际触发的事件,都可以执行回调函数的代码段,这样就不需要通过循环来操作给每个子级来添加事件。其实我们主要的目的还是来解决实际触发的标签子级的添加新的子级,进行增删改查。

$("父级标签").on("事件名","实际触发的标签(子级)",function(){

         });

我们通过事件的绑定,我们可以进行相关的ui操作。而事件代理模式是很方便的,能减少我们的内存消耗,交互次数。提高我们的加载速度。所以,我们是可以经常用的。需要注意的是,因为事件委托原理是父级来作为事件代理人,而实际触发的事件的兄弟同级都会有事件触发函数机制,也就是点击事件代理人父级下的子级都会触发事件函数的执行(也就事件回调函数) 。所以,我们要学会运用事件流的相关机制。

在事件对象中,我们对于事件对象enevt的属性 e.currenTarget 和e.target 还有事件函数的this的指向问题。实际触发事件对象和this指向的对象是一样的。即事件绑定的元素上。即 e.currenTarget == this 而e.target是我们目标的对象。即使我们点击的对象,但不一定是实际触发的对象。即e.currenTarget !=this.

在jq中,我们的this也用的比较多。在函数中,或者方法中,在事件绑定中。我们都可以用this来指向调用this所在的函数。这样this绑定的方法和属性相关的操作。在jq事件的函数中,this指向的是触发事件的标签而不是$("元素”)的对象。这一点是最重要的。当然,我们可以在jq所封装的方法里用this。对象的方法,函数体,封装的插件都可以用到this。是很方便。在this改变 指针方法中,有call() 和$.proxy() 方法。在jq中,$.proxy()方法中,有两个参数,第一参数是改变this的函数名。第二个参数是要改变this指针的新对象。$(show,document)(1,2)调用函数的执行,并且传参。所以,在$()后面用小括号来表示调用函数。并且在小括号内可以传参。这两种方法都可以改变this指针。最后一种方法比较清晰一些,逻辑性比价强。可以比较清楚的看清逻辑性。在this指针下,我们很可能有误解,总结this的用法就是this只有在代码执行的时候,我们才能确定this的指向。我们需要记住一句话就是调用执行this所在的函数的对象,就是this指向的对象。这是我们判断的this指针的主要方法,匿名函数中的this指针是指向window的对象。在事件函数中,this指向的是触发事件的或者是说绑定事件函数的标签。在jq中特别注意。在事件函数中再嵌套函数的话,this指向的是window。这个我们要注意的。

你可能感兴趣的:(javascript 高级 -- jQuery-事件绑定)