Подтвердить что ты не робот

Есть ли метод jQuery Click?

Я пытаюсь щелкнуть ссылку, используя jquery. Появляется только событие click, которое реплицирует "onclick" (например, пользовательский ввод). Можно ли использовать jquery, чтобы на самом деле щелкнуть ссылку?

4b9b3361

Ответ 1

Из вашего ответа:

$("a[0]") 

не является допустимым селектором. для первого использования на странице:

$("a:first") 

или

$("a").eq(0). 

Итак, для селектора в вашем ответе:

$("table[1]/tr[1]/td[1]/a").trigger('click'); 

написать

$("table").eq(1).children("tr").eq(1).children('td').eq(1).children('a').click();

Обратите внимание, как это будет нажимать на все ссылки во второй ячейке таблицы второй строки таблицы во второй таблице на вашей странице.
Если вы используете этот метод для перенаправления страницы на href a, следующий метод немного приятнее:

document.location = $("table").eq(1).children("tr").eq(1).children('td').eq(1).children('a').attr('href');

Обратите внимание, как это установит местоположение документа в href первого a, найденного во второй ячейке таблицы второй строки таблицы, найденной во второй таблице на странице.
Если вы хотите совместить первые элементы, используйте eq (0) вместо eq (1).

ИЗМЕНИТЬ
Если вы действительно хотите сделать это 1337-haxxor

$("table:eq(1) > tr:eq(1) > td:eq(1) > a").click();

однако я думаю, что другой метод более читабельен.

ИЗМЕНИТЬ

Хорошо, от вас следующий ответ/вопрос thingie
Как насчет того, чтобы на самом деле не щелкнуть ссылку, а просто установил для нее строку document.location:

document.location = $("table").eq(0).children("tr").eq(0).children('td').eq(0).children('a').eq(0).attr('href');

Ответ 2

Я предпочитаю $(- некоторый объект -). click() для удобочитаемости

Если вы передаете метод click() функции, он ведет себя как привязка события onClick:

то есть. $(- некоторый объект -). click (function() {-do stuff-})

Ответ 3

$(- некоторый объект -). trigger ('click') должен сделать трюк.

Ответ 4

Это успешно работает:

    $(document).ready(function() {
        $("#horizontalSlideButton").trigger('click');
    }); 

Если horizontalSlideButton - это идентификатор ссылки, для которой требуется инициировать событие click для.

Как только загружается DOM, загружается содержимое $(document).ready(function() {}.

Пожалуйста, отметьте, если это поможет!

Ответ 5

У меня была аналогичная проблема, и я обнаружил, что, создав фальшивый объект события, а затем отправив его с помощью dispatchEvent(), реплицированный пользователь щелкает очень красиво:

var event = document.createEvent("HTMLEvents");
event.initEvent("click", true, true);
document.getElementById('myID').dispatchEvent(event); 

Очевидно, что это не использование JQuery, но это может помочь в вашей задаче.

Ответ 6

$("table:first").find("tr:first").find("td:first").find("a:first")[0].click();

Это будет работать в Internet Explorer, если это ваша единственная цель, иначе вы застряли с решением document.location.

Ответ 7

Попробуйте так:

$("table:first").find("tr:first").find("td:first").find("a:first").click();

Это вызовет событие onclick первого a в первой ячейке первой строки в первой таблице... и само его читаемое само по себе.

Ответ 8

Я предпочитаю использовать живую функцию, такую ​​как (для класса)

  $(document).ready(function() {
    $(".myclass").live('click', function(){//do something});

});

или для id

 $(document).ready(function() {
    $("#myid").live('click', function(){//do something});

});

Я использую класс span для стилизации моей ссылки и даю ей класс или идентификатор, например

    <span class="link"><a href="javascript:void(0);" target="_new">my link/a></span>