0

「CheckAll」という名前の各ボタンにチェックオールトグルを追加するコードがあります。最近、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 フィドルがあります

4

3 に答える 3

2

jQueryには、イベントをバインドするための1つの単純な関数があります.on$CSS表記を使用した関数を使用して要素を選択できます:http: //jsfiddle.net/VHXDx/11/selectAll関数がなければ、これで十分です。

// 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;
            });
        });
    });
}​);​
于 2012-08-22T20:37:53.740 に答える
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

于 2012-08-22T20:39:58.820 に答える
0

なぜ使わないのattachEventですか?jQueryを使用せずに、簡単なクロスブラウザーaddEvent関数を簡単に作成できます。

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));
    }
}
于 2012-08-22T20:50:54.403 に答える