Autor Zpráva
HGD
Profil
Ahoj, mám kód, který přidává do tabulky řádek, ale potřeboval bych předat proměnnou, jenže "onclick" mi nefunguje. Kde dělám chybu?
HTML
<table class="widefat" id="Mytab">
                        <thead style="2px solid #eee;">
                            <tr>
                <th class="sort" width="1%">&nbsp;</th>
                                <th><?php _e( 'ID-name ohne interpunkt', 'wc-bookings-rental' ); ?></th>
                                <th><?php _e( 'Name', 'wc-bookings-rental' ); ?></th>
                                <th><?php _e( 'Max. block', 'wc-bookings-rental' ); ?>&nbsp;<a class="tips" data-tip="<?php _e( 'Please select the date range for which you want the product to be disabled.', 'uou-bookings' ); ?>">[?]</a></th>
                                <th class="remove" width="1%">&nbsp;</th>
                            </tr>
                        </thead>
                        <tfoot>
                            <tr>
                                <th colspan="5">
                                    <a href="#" class="button button-primary add_row"><?php _e( 'Add Range', 'wc-bookings-rental' ); ?></a>
                  
                  <p class="button button-primary" onclick="addRow()"><?php _e( 'Add Row', 'wc-bookings-rental' ); ?></p>
                                </th>
                            </tr>
                        </tfoot>
                        <tbody id="availability_rows">
                            <?php include( 'uou-resource-booking-availability-fields.php' ); ?>
                        </tbody>
                    </table>

JS
první blok funguje, druhý nevím kde je chyba :)
   // přidání řádku
    $( '.add_row' ).click(function(){
        var index = 3;
        
        $(this).closest('table').find('tbody').append(copy_row(index));
        $('body').trigger('row_added');
        return false;
    }); 
    
// přidání řádku
    function addRow(){        
       $(this).closest('table').find('tbody').append('<tr><td>HELE</td></tr>');   
       return false;
    }
_es
Profil
Vo funkcii addRow, takto zavolanej, nie je this to, na čo sa kliklo, ale objekt window, musíš this predať inak, najlepšie v argumente predanom do funkcie.
HGD
Profil
takže teoreticky by mělo fungovat tohle?
$('#Mytab').find('tbody').append('<tr><td>HELE</td></tr>');
_es
Profil
HGD:
No ale chcel si snáď radu, aby oba kódy fungovali rovnako. V HTML atribúte onclick zavoláš funkciu addRow takto:
onclick="addRow(this)"
A funkciu upravíš:
function addRow(element){...
a v nej namiesto this budeš pracovať s premennou element.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: