Addeventlistener在javascript中使用jQuery

时间:2012-08-22 20:30:18

标签: javascript jquery function addeventlistener

我有一个代码,为我的每个名为“CheckAll”的按钮添加一个check-all切换 我最近遇到一个问题,从IE浏览器,按钮不起作用,我发现addEventListener在IE中不起作用,你必须使用attachEvent,但有些人说这也可能有后果,他们是推荐jQuery。那么有人可以演示我的javaScript的jQuery版本吗? 这是代码

function script1(){
var el = document.getElementsByName('CheckAll');  
el1 = el[0];  
el2 = el[1];
el3 = el[2];
el4 = el[3];
el5 = el[4];
el6 = el[5];
el7 = el[6];



el1.addEventListener('click', function(){selectAll(0,8)}, false);
el2.addEventListener('click', function(){selectAll(8,16)}, false);
el3.addEventListener('click', function(){selectAll(16,26)}, false);
el4.addEventListener('click', function(){selectAll(26,34)}, false);
el5.addEventListener('click', function(){selectAll(34,44)}, false);
el6.addEventListener('click', function(){selectAll(44,52)}, false);
el7.addEventListener('click', function(){selectAll(52,60)}, false);


}

这是一个jfiddle fiddle

3 个答案:

答案 0 :(得分:2)

在jQuery中,有一个简单的函数来绑定事件:.on。您可以使用CSS表示法$使用selectAll函数选择元素:http://jsfiddle.net/VHXDx/11/。如果没有// run when elements are available $(function() { // select the `CheckAll` buttons and run a function for each one $("input[name='CheckAll']").each(function(i) { // `i` is a counter // bind event $(this).on("click", function() { // select `AG[]` elements in the current row and toggle their checked property $(this).closest("tr").find("[name='AG[]']").prop("checked", function(j, current) { return !current; }); }); }); }​);​ 函数,这将是所有需要的:

{{1}}

答案 1 :(得分:1)

function script1(){
    var el = $('[name="CheckAll"]');
    el.on('click', function() {
        $(this).closest('td').siblings().find('input[name="AG[]"]').each(function(i,e) {
            e.checked = !e.checked;
        });
    });
}

FIDDLE

答案 2 :(得分:0)

为什么不使用attachEvent?您可以在不使用jQuery的情况下轻松构建simple crossbrowser addEvent function

var add = document.addEventListener ? function(el, type, fn) {
    el.addEventListener(type, fn, false);
} : function(el, type, fn) {
    el.attachEvent("on"+type, fn.bind(el), false);
};

function script1(){
    var els = document.getElementsByName('CheckAll');
    var a = 1, b = 0;
    for (var i=0; i<els.length; i++) {
        a *= -1;
        add(els[i], 'click', selectAll.bind(null, b, b+= 9+a));
    }
}