ошибка триггера jquery - PullRequest
       2

ошибка триггера jquery

0 голосов
/ 17 ноября 2010

У меня есть это

...
<li style="padding: 50px;">
   <a href="blabla" style="background:red;">Click Me</a>
</li>
...

Как вы все знаете, тег <a> будет меньше по размеру.Я хочу использовать jquery как ...

$('li').click(function (){
   $(this).find('a').trigger('click');//does not work :(
   alert($(this).find('a').attr('href'););//returns blabla//which is correct
});

Есть идеи, почему <a> не может быть запущен таким образом?PS

Ответы [ 5 ]

4 голосов
/ 17 ноября 2010

Функция jQuery trigger будет вызывать обработчики событий, зарегистрированные с использованием jQuery.

Она не будет имитировать настоящий щелчок.

Вместо этого вы можете написать

location = $(this).find('a').attr('href');
1 голос
/ 17 ноября 2010
 $(this).find('a').trigger('click')

Только запускает событие javascript, но не события по умолчанию

Вот исправление

$('li').click(function (){
    var url =  $(this).find('a').attr('href');
    location.href= url
});

Вот рабочий пример

Вы тоже можете упростить это:

$('li').click(function (){
    location.href= $(this).find('a').attr('href');
});
0 голосов
/ 17 ноября 2010

С помощью JavaScript вы не можете смоделировать собственный щелчок браузера.Для вашей ссылки вам нужно будет установить обработчик событий, который действительно срабатывает, как только вы запускаете «клик».Оттуда вы можете использовать метод SLaks location = ....

0 голосов
/ 17 ноября 2010

Я думаю, что CSS достаточно, чтобы делать то, что вы хотите ...

То, что вы хотите, это просто теги ссылок, занимающие все <li> места. Во многих случаях достаточно тегов display:block; на <a>, но я ничего не знаю о вашем HTML / CSS ^^

0 голосов
/ 17 ноября 2010

Как насчет:

$(this).find("a:first").click();

Полагаю, это потому, что вы не привязали событие onclick "a" ни к чему, используя jQuery: -)

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