Używam danych, to łatwe i potężne narzędzie do generowania stołu za pomocą jQuery

Link odniesienia jest tutaj: Możesz po prostu spróbować również na tej stronie.

https://datatables.net/

Problem polega na przykład, mam stół z 20 rzędami. Jeśli pokazuje 10 wierszy na stronę, są dwie strony. A dla każdego wiersza znajduje się przycisk i przechwytuję zdarzenie Kliknij na ten przycisk. na przykład

$('.row_button').on('click',function()){
....
});

Problem polega na tym, że dla pierwszej strony przyciski Wydarzenie Kliknij, ale dla drugiej strony nie, po prostu nic odpowiedzi na skrypt nie ma błędu w deweloperze Chrome. Myślę, że przycisk nawigacji strony wpływa na zdarzenie Click. Ale jak to naprawić? dzięki

1
user782104 13 sierpień 2014, 06:13

2 odpowiedzi

Najlepsza odpowiedź

Oprócz powyższej odpowiedzi, w rzeczywistości urzędnik ma już tę odpowiedź

Najczęstsze FAQ

P. Moje wydarzenia nie działają na drugiej stronie

A. Podczas mocowania zdarzeń do komórek w tabeli kontrolowanej przez DataTables należy uważać, jak się skończy. Ponieważ Datables usuwa węzły z Domu, zdarzenia stosowane do statycznego słuchacza zdarzeń mogą nie być w stanie wiązać się ze wszystkimi węzłami w tabeli. Aby to pokonać, wystarczy użyć opcji słuchacza zdarzeń Delegowane JQuery, jak pokazano w tym przykładzie. Dodatkowo możesz użyć mojego zakładki event Visual, aby pomóc zagniewać problemy z wydarzeniem.

Odniesienie: http://datatables.net/faqs/#events

 $('#example tbody').on('click', 'tr', function () {
        var name = $('td', this).eq(0).text();
        alert( 'You clicked on '+name+'\'s row' );
    } );

Eleganckie i dzieła

2
user782104 13 sierpień 2014, 03:16

Po poszukiwaniu udaje mi się uzyskać brzydkie rozwiązanie, wydaje się, że problem jest spowodowany przez każdą stronę, jest jednak dynamiczny Dodaj do strony, jednak jQuery "ON" nie działa i nie mam o tym pojęcia. W końcu ten kod jest pracami.

   $('#data_table').dataTable({
            "fnDrawCallback": function() {
                $('.showDetail').unbind('click');
                $('.showDetail').on('click', function() {
                ...........
                });
            }
        });
0
user782104 13 sierpień 2014, 02:58