Javascript动态绑定

<div onclick="test()"></div>
<script>
    function test(){
        //code
    }
</script>

上面这种方法是很low逼的,用了这种方法工资就涨不上去你信不信?下面这种也是...

<div id="test"></div>
<script>
    var test = document.getElementById("test");
    test.onclick = function(){
        //code
    };
</script>

能不能用一个稍微有点逼格的方法?

<div id="test"></div>
<script>
    var test = document.getElementById("test");
    test.addEventListener("click",function(){
        //code
    });
</script>

addEventListener() 还能解绑

<div id="test"></div>
<script>
    var test = document.getElementById("test");
    function testFunction(){
        //code
    }
    test.addEventListener("click",testFunction);
    test.removeEventListener("click",testFunction);
</script>

听说这个方法对IE8无法向下兼容?没关系,我们还有attachEvent/detachEvent

<div id="test"></div>
<script>
    var test = document.getElementById("test");
    function testFunction(){
        //code
    }

    //绑定
    if (test.addEventListener) {
        test.addEventListener("click", testFunction);
    } else if (test.attachEvent) {
        test.attachEvent("onclick", testFunction);
    }

    //解除
    if (test.removeEventListener) {
        test.removeEventListener("click", testFunction);
    } else if (test.detachEvent) {
        test.detachEvent("onclick", testFunction);
    }
</script>
时间: 2024-10-25 17:59:42

Javascript动态绑定的相关文章

(转)Jquery+Ajax实现Select动态定数据

解决思路: 在数据库中建立类型字典式表.将下拉框需要添加的项,在数据库表里中文.英文名称对应起来. 下拉框动态绑定数据库表中需要字段. [csharp] view plain copy <div id="bgDiv" style="display:none;"></div> <a  class="btn-lit" href="javascript:"  onclick="bgDiv.st

移动端图片操作(一)——上传

上传我们一般都是用“input[type=file]”控件.当你用此控件时,你就授权了网页和服务器访问对应的文件,就可以得到File对象. 友情提示在,在Android手机webview中,是不支持上传文件的,网上说是修改Android端的代码,但我没试过,我们这边是使用客户端提供的接口来实现上传的. 下面的示例代码可以在这里查看到. 一.accept属性 该属性表明了服务器端可接受的文件类型,可以限制你手机选择相关的文件,如果限制多个,可以用逗号分割,下面的代码就表示只能选择图片与音频相关的文

ajax 遍历select 下拉框

html :<select id="type"   > </select> js代码: <script type="text/javascript">  //动态绑定下拉框项          function addnotice() {              $.ajax({                  url: "${pageContext.request.contextPath}/dictionary/j

javascript与jquery动态绑定事件需要先加载页面注意的坑

1.javascript的Dom对象动态事件绑定注意以下2点,如:document.getElementById("id名称").addListenerEvent("事件名称",function(){代码},false),动态绑定事件,事件名称不加on,如:click,mouseover等. (1)如果<script>绑定代码</script>写在<body>html代码</body>前面,则必须先使用加载页面语句wi

Javascript 严格模式详解

Javascript 严格模式详解 作者: 阮一峰 日期: 2013年1月14日 一.概述 除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict mode).顾名思义,这种模式使得Javascript在更严格的条件下运行. 设立"严格模式"的目的,主要有以下几个: - 消除Javascript语法的一些不合理.不严谨之处,减少一些怪异行为; - 消除代码运行的一些不安全之处,保证代码运行的安全: - 提高编译器效率,增加运行速度

【转】深入浅出 JavaScript 中的 this

Java 等面向对象的语言中,this 关键字的含义是明确且具体的,即指代当前对象.一般在编译期确定下来,或称为编译期绑定.而在 JavaScript 中,this 是动态绑定,或称为运行期绑定的,这就导致 JavaScript 中的 this 关键字有能力具备多重含义,带来灵活性的同时,也为初学者带来不少困惑.本文仅就这一问题展开讨论,阅罢本文,读者若能正确回答 JavaScript 中的 What ’s this 问题,作为作者,我就会觉得花费这么多功夫,撰写这样一篇文章是值得的. Java

AngularJS单选框及多选框实现双向动态绑定

在AngularJS中提及双向数据绑定,大家肯定会想到ng-model指令. 一.ng-model ng-model指令用来将input.select.textarea或自定义表单控件同包含它们的作用域中的属性进行绑定.它将当前作用域中运算表达式的值同给定的元素进行绑定.如果属性不存在,它会隐式创建并将其添加到当前作用域中. 始终用ng-model来绑定scope上一个数据模型内的属性,而不是scope上的属性,这可以避免在作用域或后代作用域中发生属性覆盖! <input type="te

HighChat 动态绑定数据记录

最近刚开始做图形操作,纠结了一上午,highchat 动态绑定数据这块一直不知道怎么绑定,后来多次尝试,发现 1.x轴的数据是个数组格式,我从后台传到前台的时候,js中用数组进行处理数据,然后赋值到chat就不会报错, 2.y轴的数据和x轴数据还不一样,通过数组处理后发现还是无法显示.后来我在后台将数据添加了中括号[]括起来后,传到前台,然后前台在用eval()处理后就能够显示了 3.eval具有计算的功能,刚开始x轴的时候我用了eval对时间进行操作发现时间都是相减了,格式为:2017-07-

023.JavaScript基础综合

JAVASCRIPT:-------------------------------------------------------Day01-------------------------------------------1.概念: 动态网站:网站的[动态功能]的开发技术 where:浏览器(客户端) how:客户端动态功能的开发(客户端的表单验证,特效,客户端的计算...) what: 脚本语言:能嵌套在其他语言中执行的语言 解释执行:按照程序顺序逐行的解释执行代码,不需要编译. C#: