Тебе не разрешают щелкать - PullRequest
1 голос
/ 23 декабря 2011

Я написал это быстро, потому что у меня проблемы с этим. Я извиняюсь, если код выглядит грязным. Тебе не кликабельно? Оповещения нет, и я не вижу явных ошибок

релевантный php

echo '<table>';
while ($row = mysql_fetch_array($result)) { 

echo
'<tbody class = "reserveAPickupAppointmentRoommateAppointment"
        id = "reserveAPickupAppointmentRoommateAppointment">
    <tr>
            <td>'
                .$row["name"].
            '</td>
            <td>
                <span class = "reserveAPickupAppointmentLocaton"
                            id="reserveAPickupAppointmentLocaton">'
                    .$row["location"].
                '</span>
            </td>
            <td>
                <span class = "reserveAPickupAppointmentSubLocaton"
                            id="reserveAPickupAppointmentSubLocaton">'
                    .$row["subLocation"].
                '</span>
            </td>
        </tr>
        <tr>
            <td>
                <span class = "reserveAPickupAppointmentStartTime"
                            id="reserveAPickupAppointmentStartTime">'
                .$row["startTime"].
            '</span>    - 
            <span class = "reserveAPickupAppointmentEndTime"
                            id="reserveAPickupAppointmentEndTime">'
            .$row["endTime"].
                '</span>
            </td>
            <td>
                <span class = "reserveAPickupAppointmentDate"
                            id="reserveAPickupAppointmentDate">'
                .$row["date"].
                '</span>
            </td>
        </tr>
    </tbody>';
}

echo '</table>';

JQuery включены в мой документ готовых функций

   $("#reserveAPickupAppointmentRoommateAppointment").click (function() {
    alert ("TEST");
   });

Ответы [ 2 ]

3 голосов
/ 23 декабря 2011

Тот факт, что ваш идентификатор соответствует вашему классу, немного пугает. Я не знаю php, но из while кажется, что вы создаете более одного tbody в цикле.

Это означает, что у вас будет более одного элемента с идентификатором reserveAPickupAppointmentRoommateAppointment. Если это так, то это недопустимо, и очень вероятно, что селектор будет сопоставлять только первое.

Чтобы ответить на ваш вопрос напрямую, да, у tbody может быть обработчик, если вы позволяете событию всплывать до него.

http://jsfiddle.net/hEw54/


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

$(document).ready(function() {
    $('#reserveAPickupAppointmentRoommateAppointment tbody').click(function() {
        alert ("TEST");
    });
});

Или вы можете просто выбрать напрямую по классу:

$(function() {
    $('.reserveAPickupAppointmentRoommateAppointment').click(function() {
        alert ("TEST");
    });
});

Я обновил код выше, чтобы поместить его в обработчик готовности JQuery DOM. Вы заметите, что два примера немного отличаются. Они по сути идентичны, второй является ярлыком для первого. Есть и другие незначительные отличия, но здесь не о чем беспокоиться.

Также обратите внимание, что некоторые люди ошибочно принимают код DOM ready:

(function() {

    // I'm not a DOM ready construct

})();
0 голосов
/ 23 декабря 2011

вы не можете использовать onclick с TABLE, TBODY или TR, но вы можете присоединить его к TD с помощью дочернего селектора jQuery

...