функция щелчка jquery tablerow - PullRequest
1 голос
/ 20 июня 2009

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

Что происходит, когда по последнему нажатию на тд открывается модальный режим и запускается функция готовности. Я пытаюсь остановить модальное открытие.

У меня также есть подсвечивание строк мыши при каждой строке таблицы.

Вот как я связываю строки таблицы с модальной функцией:

$("#table").find("tr").click(function(e) {

 //code to open model
 }

Вот как я запускаю функцию готовности:

$("#table tr td:last-child a").click(function(e) {
//code to open model
 }

Ответы [ 3 ]

1 голос
/ 20 июня 2009

Я считаю, что вам нужно вызвать e.stopPropogation (), чтобы предотвратить распространение события:

$("#table tr td:last-child a").click(function(e) {
    //code to open model
    e.stopPropagation();
    return false;
}

Объяснение

События распространяются от самого «конкретного» элемента до их родителей. Это называется пузырением, и в этом случае ваш второй модал запускается, потому что событие click поднимается вверх от элемента A к элементу TR.

Я верю, что все события распространяются и всплывают. Return false просто отменяет действие по умолчанию для элемента A, которое заключается в переходе по ссылке ... оно не останавливает объект события.

Вот хорошее объяснение всего этого.

1 голос
/ 20 июня 2009

Просто добавьте "return false;":

$("#table tr td:last-child a").click(function(e) {
    // whatever should happen when clicking the anchor
    return false;
}

Это предотвращает распространение события на окружающие tr.

0 голосов
/ 20 июня 2009

почему вместо поиска ссылки внутри последней ячейки любой строки в таблице просто назначьте идентификатор или класс для вашей ссылки

нравится ...

и затем добавьте свойство display: block из css, которое заставляет якорь заполнять всю область, в которой он содержится.

тогда просто

$('.anchorclass').click(function(){

// сделать что-то здесь

});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...