2012-06-02 91 views
1

我想進行簡單的onClick事件動態選擇對的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]); 
    }); 

,但是這是不工作

+0

是那些'_1'。 '_2'等項目動態? – thecodeparadox

+0

在**之前運行**代碼的第二位,類名稱爲「_1」,「_2」等元素在DOM中嗎? – sissonb

+0

對不起,他們動態創建 – Pradeep

回答

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]); 

    }); 

}); 
+0

讓我試試這個,只是改變,我看到的是,刪除',哦是的,我還需要動態元素的第二個片段, – Pradeep

+0

@thecodeparadox我會用'$ .each替換循環(arrayOfValues,function(i,el){...})' - 只需要使用jQuery方法:D – Andreas

+0

呦,它工作:),感謝您的快速回復 – Pradeep