onClick的动态选择器不起作用

时间:2012-06-02 20:12:37

标签: javascript jquery

我想制作简单的onClick事件

$('._1').click(function(){
        window.open('abc.html?parameter=1');
    });

在上面的例子中,我有_1作为一个类, 现在有多个这样的元素,1这里也作为window.open请求的参数

但我想绑定多个点击事件

var arrayOfValues = [1,2,4,6,7,8];
for(var z=0;z<arrayOfValues.length;z++)
    $('._'+arrayOfValues[z]+'').click(function(){
        window.open('abc.html?parameter='+arrayOfValues[z]);
    });

但这不起作用

1 个答案:

答案 0 :(得分:2)

var arrayOfValues = [1,2,4,6,7,8];

$.each(arrayOfValues, function(key, val) {

   for(var z=0;z<arrayOfValues.length;z++) {
     $( '._'+arrayOfValues[z] ).click(function(){
                             ^ -- dont need quote here
       window.open('abc.html?parameter='+arrayOfValues[z]);

     });
   }

   // jQuery loop
   $( '._' + val ).click(function(){

        window.open('abc.html?parameter='+arrayOfValues[z]);

    });

});

但是如果您在页面加载后将元素添加到文档中,那么您应该尝试使用委托事件处理程序.on()

var arrayOfValues = [1,2,4,6,7,8];

$.each(arrayOfValues, function(key, val) {

    $('body').on('click', '._'+ arrayOfValues[z], function(){

        window.open('abc.html?parameter='+arrayOfValues[z]);

    });

});