2014-08-27 6 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

Замечание, но важно: __ID в HTML должны быть уникальными .__ – Satpal

ответ

0

Если вы даете DIVS уникальный идентификатор, вы можете попытаться назвать их люблю:

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

Or попробуйте это следующим образом:

$(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 
    } 
} 

Сторона-нет te: измените свою петлю на:

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

и вы можете стереть «- 1» в инструкции if.

Смежные вопросы