美文网首页
2.VQuery事件

2.VQuery事件

作者: 大捕猎店 | 来源:发表于2017-10-09 23:11 被阅读0次

$函数

绑定事件

  • click方法
    显示隐藏——showhide方法
  • hover方法
    • 解决函数中的this问题
    • callapply

toggle方法

<p>鼠标移动到该段落。</p>
<button>切换 hide() 和 show()</button>
<input type="button" value="1">
<input type="button" value="2">
<script>
$('input').toggle();
</script>
  • 点击计数
VQuery.prototype.toggle = function() {
        var i =0;
        var count =0;
        for (var i = 0; i < this.elements.length; i++) {
            myAddEvent(this.elements[i],'click',function(){
                alert(count++);
            })
        }
};
计数器使用同一个count的情况
VQuery.prototype.toggle = function() {
    var i = 0;
    for (var i = 0; i < this.elements.length; i++) {
        addToggle(this.elements[i]);
    };

    function addToggle(obj) {
        var count = 0;   //count挪到这个位置
        myAddEvent(obj, 'click', function() {
            alert(count++);
        });
    }
};
实现以后的效果,分别计数
  • arguments的使用
    现在来实现这样的效果
$('input').toggle(function() {
            alert('a')
        },function(){
            alert('b')
        },function(){
            alert('c')
        });

下面来实现方法:

VQuery.prototype.toggle = function() {
    var i = 0;
    var _arguments = arguments;
    for (var i = 0; i < this.elements.length; i++) {
        addToggle(this.elements[i]);
    };

    function addToggle(obj) {
        var count = 0;   //count挪到这个位置
        myAddEvent(obj, 'click', function() {
            console.log(arguments)
            arguments[count%arguments.length].call(obj);
            count++;
        });
    }
};

报错:Uncaught TypeError: arguments[(count % > arguments.length)].call is not a function

查看arguments为空

arguments为空

因为这里argumentsfunction参数为0个。

function() {
            console.log(arguments)
            arguments[count%arguments.length].call(obj);
            count++;
        }

要调用toggleargument,老方法,定义_arguments。最后的结果:

VQuery.prototype.toggle = function() {
    var i = 0;
    var _arguments = arguments;
    for (var i = 0; i < this.elements.length; i++) {
        addToggle(this.elements[i]);
    };

    function addToggle(obj) {
        var count = 0;   //count挪到这个位置
        myAddEvent(obj, 'click', function() {
            _arguments[count%_arguments.length].call(obj);
            count++;
        });
    }
};

相关文章

  • 2.VQuery事件

    $函数 绑定事件 click方法显示隐藏——show、hide方法 hover方法解决函数中的this问题call...

  • JavaScript事件01——事件流

    大纲:概念(事件、事件流)事件流模型(事件冒泡、事件捕获、DOM事件流) 一、概念: 1、事件:事件就是用户或浏览...

  • 事件对象,事件监听,事件冒泡,事件代理

    一、事件对象 二、冒泡事件:(事件从子元素往父级元素向上触发事件)处理兼容问题:主流浏览器:e.stopPropa...

  • 事件总结

    DOM事件主要内容 事件流 事件注册 事件对象 事件分类 事件代理 什么是DOM事件? 事件是某个行为或者触发,比...

  • Javascript事件系统

    本文内容 事件基础 事件监听方式 事件默认行为 事件冒泡与事件捕获 事件绑定与事件委托 事件基础 注意:本文不会深...

  • Javascript事件-事件冒泡,事件捕获,事件监听和事件委托

    事件处理机制 (一)DOM事件流 DOM模型是一个树形结构,在DOM模型中,HTML元素是有层次的。当一个HTML...

  • 【事件】事件流

    1、JavaScript和HTML之间的交互通过事件实现的。2、事件流描述的是从页面中接收事件的顺序。3、IE 和...

  • 【事件】事件对象

    触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含着所有与事件有关的额信息。(包括导致事件的元...

  • 【事件】事件类型

    DOM3 级事件规定了以下几类事件: UI(User Interface,用户界面)事件,当用户与页面上的元素交互...

  • 2018-09-10JQuery高级应用

    JQuery事件 window事件 鼠标事件 键盘事件 表单事件 事件注册语法$(对象).type(fn)type...

网友评论

      本文标题:2.VQuery事件

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