В Livescript (который компилируется в Javascript) вы можете сделать следующее:
sleep = (ms, func) -> set-timeout func, ms
console.log "hello-1"
<- sleep 2000ms
console.log "hello-2"
<- sleep 2000ms
console.log "hello-3"
Я считаю, что вам нужно вызвать e.stopPropogation (), чтобы предотвратить распространение события:
$("#table tr td:last-child a").click(function(e) {
//code to open model
e.stopPropagation();
return false;
}
Объяснение :
События распространяются от наиболее "конкретного" элемента до их родители. Это называется восходящим потоком, и в этом случае ваш второй модальный элемент запускается, потому что событие щелчка перетекает из элемента A в элемент TR.
Я верю, что все события распространяются и всплывают. Return false просто отменяет действие по умолчанию элемента A, которое заключается в переходе по ссылке ... оно не останавливает объект события.
Вот хорошее объяснение всего этого.
Просто добавьте « return false;
»:
$("#table tr td:last-child a").click(function(e) {
// whatever should happen when clicking the anchor
return false;
}
Это предотвратит появление события распространяется в окружающее tr
.
почему вместо того, чтобы найти ссылку внутри последней ячейки любой строки в таблице, просто назначьте идентификатор или класс вашей ссылке
, например ...
, а затем добавьте display: block свойство CSS, которое заставляет якорь заполнять всю область, в которой он содержится.
затем просто
$('.anchorclass').click(function(){
// здесь что-то делаем
});