2016-01-15 3 views
3

Добрый день,JQuery .click функция на время цикла

Так что у меня этот простой цикл и в основном я хотел бы создать событие для любой момент пользователь нажимает на любой линии, созданной петли.

Это мой очень простой PHP во время цикла:

<?php 
$x = 1; 
while($x <= 5) { 
    ?> 
    <div id="number"><?php echo "$x <br>";?></div><?php 
    $x++; 
} 
?> 

и это мой JQuery:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
<script> 
$(document).ready(function(){ 
    $("#number").click(function(){ 
     alert("click"); 
    }); 
}); 
</script> 

К сожалению, предупреждение только активизируется, когда я нажимаю на первое число. Есть ли что-нибудь, что я делаю неправильно?

Edit: Я чувствую себя очень тупой, я уже использовал класс вместо этого, благодаря Tushar

+12

** ID должен быть уникальным **, используйте класс вместо этого. – Tushar

+0

Большое спасибо, я чувствую себя очень глупо – Cancerbro

+0

@Cancerbro, почему это хороший день? Для меня это рано утром. ;). В любом случае, Тушар прав, положите все на один класс. Они все еще могут иметь отдельный идентификатор, но в этом случае вы хотели бы использовать класс. – OneStig

ответ

0

Селектор JQuery будет найти только первую строку, потому что все они получают тот же идентификатор. используйте селектор классов и схему id, которую вы можете использовать. Например:

<?php 
for ($x =0 ; $x < 5 ; $x++) { 
    ?> 
    <div id="number<?php echo $x ?>" class="myclass"><?php echo "$x <br>" ; ?></div><? 
} 
?> 

Теперь вы можете выбрать, как это:

$("div[id^=number]").click (function() { alert ("click") ; }) ; 

или

$("div.myclass").click (function() { alert ("click") ; }) ; 

последний должен быть быстрее.

0
<?php 
$x = 1; 
while($x <= 5) { 
    ?> 
    <div class="number"><?php echo "$x <br>";?></div><?php 
    $x++; 
} 
?> 


$(document).ready(function(){ 
    $(".number").click(function(){ 
     alert("click"); 
    }); 
}); 


Id should be unique.So added class. 
Смежные вопросы