Setup:jQuery funkcja jest wywoływana dwukrotnie za każde kliknięcie
napisałem funkcję jQuery, aby zaktualizować komórki tabeli z table_2, gdy wiersz w table_1 kliknięciu. Oto co napisałem:
<script type="text/javascript">
$("tr").live('click',function() {
var host = $(this);
alert('A row in table 1 is clicked!');
var count = host.find("td").eq(2).text();
$("#myTable_2 tr:eq(0) td:eq(1)").text(count);
$("#myTable_2 tr:eq(1) td:eq(1)").text(5);
});
</script>
Problem:
Kiedy krok za pośrednictwem tej funkcji za pomocą FireBug, widzę danych komórek w myTable_2 jest zmieniany. ALE, za każde kliknięcie, funkcja jest wykonywana dwukrotnie. Widzę pole alertu pojawiające się dwukrotnie dla każdego kliknięcia.
Czy ktoś może mi powiedzieć, dlaczego tak się dzieje? I jak tego uniknąć?
Dzięki za odpowiedź. Masz na myśli, że użycie polecenia "on" lub "delegate" rozwiąże problem wywoływania funkcji dwa razy? – Bhushan
@Learner no 'on()' jest używany do wiązania zdarzenia z jquery 1.7+, a dwa razy eventowy ogień zostanie rozwiązany za pomocą '# table_1', ponieważ wybierze tylko' tr', które należy do pierwszej tabeli – thecodeparadox
dzięki theododaradox. – Bhushan