当前位置:首页 > 开发 > Web前端 > 前端 > 正文

动态绑定和删除onclick事件

发表于: 2015-04-26   作者:357029540   来源:转载   浏览:
摘要: 因为对JQUERY和JS的动态绑定事件的不熟悉,今天花了好久的时间才把动态绑定和删除onclick事件搞定!现在分享下我的过程。      在我的查询页面,我将我的onclick事件绑定到了tr标签上同时传入当前行(this值)参数,这样可以在点击行上的任意地方时可以选中checkbox,但是在我的某一列上也有一个onclick事件是用于下载附件的,当
因为对JQUERY和JS的动态绑定事件的不熟悉,今天花了好久的时间才把动态绑定和删除onclick事件搞定!现在分享下我的过程。

     在我的查询页面,我将我的onclick事件绑定到了tr标签上同时传入当前行(this值)参数,这样可以在点击行上的任意地方时可以选中checkbox,但是在我的某一列上也有一个onclick事件是用于下载附件的,当我点击附件下载时当然不能把该行的checkbox选中,还出现的一个情况是由于在tr标签上绑定了onclick事件,在直接选择checkbox时不能一次点击选中该checkbox,需要双击才可以,因此在这两种情况中我又在checkbox列和附件下载列添加了onmouseout和onmouseover事件,同时传入该列(this值)参数,用于动态将标签tr上的事件重新绑定和删除。

部分代码示例如下:

绑定在tr上的事件

<tr  onclick="chooseCheckBox1(this);">

在checkbox列的事件,附件下载列一样

<td width="2%">
<input type="checkbox" onmouseout="addOnClick(this)" onmouseover="moveOnClick(this)" name="temp1">
</td>



function chooseCheckBox1(line){
        var row;

        //用于判断是否已经经过onmouseout和onmouseover来动态绑定事件

        if(line.data == undefined){
            row = line;
        }else{
            row = line.data.row1[0];
        }
        if($(row).children().find("[name$=temp1]").attr("checked") == undefined){
            $(row).children().find("[name$=temp1]").attr("checked",true);
        }else{
            $(row).children().find("[name$=temp1]").attr("checked",false);
        }
    }



function moveOnClick(line){

          //第一次鼠标经过checkbox或附件下载列时删除事件
         $(line).parent().parent().removeAttr("onclick",chooseCheckBox1);

       //经过动态绑定事件后清除绑定事件
        $(line).parent().parent().unbind("click",chooseCheckBox1);
    }

    function addOnClick(line){

         //鼠标经过后动态添加事件,同时传入当前行参数
        $(line).parent().parent().bind("click",{row1:$(line).parent().parent()},chooseCheckBox1);
    }

动态绑定和删除onclick事件

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
昨晚回去后,和雷子讨论如何才能“检测”到页面上某个元素都绑定了哪些事件监听函数,第一感觉就是
项目中有如下需求,如图 选中“行预取”时,下面的input为只读,但是需要提交该input的值,所以不能
业务场景,在使用comet4j从服务器向客户端推送消息时,要在客户端页面对channel进行监听,因为项目
jQuery 绑定事件到动态创建的元素上 在进入主题之前,我们先来看一个前台页面经常用到的功能:点击
今天在做项目的时候,遇到了一个前端的问题,坑了我好长时间没有解决,今天就记录于此,也分享给大
首先,这篇文章仅仅针对于由于触摸(Touch)而触发的事件。 Android的事件:onClick, onScroll, onF
价格时效开发中,发现append加入的html中的事件不能执行,下图中的运输类型是自动生成的,直接在生成
文章摘自 http://www.jb51.net/article/26552.htm 1. 第一种添加事件的方式,直接在html的属性中写J
前几天在看《jquery基础教程》,看到事件委托的时候,关于live()方法讲的不是很详细,就去搜了一下
文章摘自 http://www.jb51.net/article/26552.htm 1. 第一种添加事件的方式,直接在html的属性中写J
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号