Использование jQuery для программного нажатия на ссылку <a> - PullRequest
53 голосов
/ 31 января 2012

Я знаю, что этот вопрос задавался ранее, но после поиска в Интернете я не могу найти прямой ответ.

HTML

<a id=myAnchor href=index.php>

jQuery (оба из них не работают)

 $('#myAnchor').click();

или

$('#myAnchor').trigger('click');

Какой самый простой и эффективный способ добиться этого

Ответы [ 8 ]

89 голосов
/ 28 мая 2014

Попробуйте это:

$('#myAnchor')[0].click();

Это работает для меня.

32 голосов
/ 31 января 2012
window.location = document.getElementById('myAnchor').href
25 голосов
/ 31 января 2012

Click просто запускает событие / события клика, а не действие "goto-the-links-href".

Вы должны написать свой собственный обработчик и затем свой $ ('# myAnchor') .trigger ('click'); будет работать ...

$("#myAnchor").click(function(event)
{
  var link = $(this);
  var target = link.attr("target");

  if($.trim(target).length > 0)
  {
    window.open(link.attr("href"), target);
  }
  else
  {
     window.location = link.attr("href");
  }

  event.preventDefault();
});
4 голосов
/ 14 февраля 2014

Я попробовал несколько из вышеперечисленных решений, но они не сработали для меня. Вот ссылка на страницу, которая работала для меня , автоматически нажмите ссылку

Выше ссылка имеет много решений, и вот тот, который работал для меня,

    <button onclick="fun();">Magic button</button>

    <!--The link you want to automatically click-->
    <a href='http://www.ercafe.com' id="myAnchor">My website</a>

Теперь внутри тегов <script>,

<script>

     function fun(){
          actuateLink(document.getElementById('myAnchor'));
     }

     function actuateLink(link)
     {
          var allowDefaultAction = true;

          if (link.click)
          {
              link.click();
              return;
          }
          else if (document.createEvent)
          {
              var e = document.createEvent('MouseEvents');
              e.initEvent(
                   'click'     // event type
                   ,true      // can bubble?
                   ,true      // cancelable?
              );
              allowDefaultAction = link.dispatchEvent(e);           
          }

          if (allowDefaultAction)       
          {
              var f = document.createElement('form');
              f.action = link.href;
              document.body.appendChild(f);
              f.submit();
          }
    }

</script>

Скопируйте, вставьте указанный выше код и нажмите на кнопку 'Magic button', вы будете перенаправлены на ErCafe.com.

4 голосов
/ 31 января 2012
<a href="#" id="myAnchor">Click me</a>

<script type="text/javascript">
$(document).ready(function(){
    $('#myAnchor').click(function(){
       window.location.href = 'index.php';
    });
})
</script>
3 голосов
/ 08 октября 2013

Добавьте onclick="window.location = this.href" к вашему <a> элементу.После этой модификации он может быть .click() с ожидаемым поведением.Для этого с каждой ссылкой на вашей странице, вы можете добавить это:

<script type="text/javascript">
    $(function () {
        $("a").attr("onclick", "window.location = this.href");
    });
</script>
0 голосов
/ 05 февраля 2019

Попробуйте это для совместимости;

<script type="text/javascript">
        $(function() {
            setTimeout(function() {
                window.location.href = $('#myAnchor').attr("href");

            }, 1500);
        });
    </script>
0 голосов
/ 29 апреля 2016

Если вы используете jQuery, вы можете сделать это с помощью jQuery.trigger http://api.jquery.com/trigger/

Пример

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script type="text/javascript" src="https://code.jquery.com/jquery-2.2.3.js"></script>
</head>
<body>
    <a id="foo" onclick="action()"></a>
    <script type="text/javascript">
        function action(){
            window.location.replace("http://stackoverflow.com/q/9081426/5526354")
        }

        $("#foo").trigger("click");
    </script>
</body>
</html>
...