2014-08-27 64 views
0

我已經編寫了一些代碼,以便當我點擊特定的div時,JavaScript函數將被調用以將一些數據添加到數據庫中。問題在於函數在for循環中,所以當我點擊它時,一個成功框會不斷重新顯示,當我將該方法置於循環外時,它不起作用。這是代碼:顯示循環提示框

for (i = 1; i <= data.length; i++) { 
var objSkills = JSON.parse(data); 
if (objSkills.skills[i - 1].idemetteur != <?php echo $me; ?>) { 
    $("div[class^='plus_']").click(function() { 
     var sk = $(this).attr("sk"); 
     addSkillEndo(sk); 
    }) 
} 


} 

這裏是DIV例子:

<div id="itemskill"> 
    <div class="skilltext" id="skilltext_1301" value="1301">Bourse</div> 
    <div id="counter" class="plus_1301" em="1301" sk="82" style="">+</div> 
</div> 

<div id="itemskill"> 
    <div class="skilltext" id="skilltext_1301" value="1301">Finance</div> 
    <div id="counter" class="plus_1301" em="1301" sk="83" style="">+</div> 
</div> 
+8

附註但很重要:HTML中的__ID必須是唯一的.__ – Satpal 2014-08-27 10:57:59

回答

0

如果你給你的div一個唯一的ID,你可以嘗試打電話給他們,如:

$("#skilltext_1301").click(function() { 
    var sk = $(this).attr("sk"); 
    addSkillEndo(sk); 
}); 

或者試試這種方式:

$(document).ready(function(){ 
    $("div[class^='plus_']").click(function() { 
     var sk = $(this).attr("sk"); 
     addSkillEndo(sk); 
    }); 
}); 

for (i = 1; i <= data.length; i++) { 
    var objSkills = JSON.parse(data); 
    if (objSkills.skills[i - 1].idemetteur != <?php echo $me; ?>) { 
     // do anything 
    } 
} 

A side-no te:將您的for循環更改爲:

for (i=0; i<data.length; i++){} 

您可以在if語句中刪除「 - 1」。