Почему моя функция нажатия jQuery ничего не делает? - PullRequest
0 голосов
/ 03 февраля 2011

Вот мой HTML

<table>
    <tbody>
        <tr id="taskID-1">
            <td>
                <a href="#" class="edit">edit</a>
            </td>
            <td data-field="complete">
                <input type="checkbox" name="tasks" id="checkID-1">
            </td>
            <td data-field="description" colspan="100">
                <label for="checkID-1">Description of task numero uno.</label>
            </td>
        </tr>
        <tr id="taskID-2">
            <td>
                <a href="#" class="edit">edit</a>
            </td>
            <td data-field="completed">
                <input type="checkbox" name="tasks" id="checkID-2" value="Description of task number 2" checked="checked">
            </td>
            <td data-field="description" colspan="100">
                <label for="checkID-2" class="line-through">Description of task number 2.</label>
            </td>
        </tr>
        <tr class="add">
            <td colspan="100">
                <a href="#">add task</a>
            </td>
        </tr>
        <tr class="editRow">
            <td>
                <a href="#" class="cancel">cancel</a>
            </td>
            <td>&nbsp;</td>
            <td>
                <input type="text" class="description">
            </td>
            <td>
                <menu class="saveButtons">
                    <a href="#" class="save close">save</a>
                    <a href="#" class="delete">delete</a>
                </menu>
            </td>        
        </tr>
    </tbody>
</table>

Вот мой jQuery:

$('.add a').live('click', function() {
// hide the .add row and show the .editRow
$(this).closest('table').children('.edit').hide();
$(this).closest('table').children('.add').hide();
$(this).closest('table').children('.editRow').fadeIn();

return false;
});

1 Ответ

4 голосов
/ 03 февраля 2011

Поскольку единственным потомком table является tbody, и у него нет ни класса edit, ни add, ни editRow.Возможно, вы захотите использовать find вместо:

$(this).closest('table').find('.edit').hide();
$(this).closest('table').find('.add').hide();
$(this).closest('table').find('.editRow').fadeIn();

Но поскольку я не знаю, чего вы на самом деле хотите достичь, я не могу сказать, если вы делаете то, что хотите;)

...