[jquery] jQuery를 사용하여 링크 클릭을 발생시키는 방법

링크가 있습니다 :

<ul id="titleee" class="gallery">
  <li>
    <a href="#inline" rel="prettyPhoto">Talent</a>
  </li>
</ul>

그리고 다음을 사용하여 트리거하려고합니다.

$(document).ready(function() {
  $('#titleee').find('a').trigger('click');
});

그러나 작동하지 않습니다.

나는 또한 시도했다 : $('#titleee a').trigger('click');

편집 :

실제로는 여기에서 호출되는 것을 트리거해야합니다 <a href="#inline" rel="prettyPhoto">



답변

앵커에서 이벤트를 트리거하려고하면 작동하는 코드 가 추가 된 eventHandler 와 함께 jsfiddle 에서 예제를 다시 작성하여 작동하는지 확인할 수 있습니다.

$(document).on("click", "a", function(){
    $(this).text("It works!");
});

$(document).ready(function(){
    $("a").trigger("click");
});

앵커를 클릭하여 사용자가 웹 페이지의 특정 지점으로 이동하도록하려고합니까, 아니면 연결된 이벤트를 트리거하려고합니까? 클릭 이벤트를 실제로 이벤트에 성공적으로 바인딩하지 않았습니까?

또한 이것 :

$('#titleee').find('a').trigger('click');

이것과 같습니다 :

$('#titleee a').trigger('click');

찾기를 호출 할 필요가 없습니다. 🙂


답변

죄송하지만 이벤트 핸들러는 실제로 필요하지 않습니다. 당신이 필요로하는 것은 클릭 할 태그 내의 다른 요소입니다.

<a id="test1" href="javascript:alert('test1')">TEST1</a>
<a id="test2" href="javascript:alert('test2')"><span>TEST2</span></a>

jquery :

$('#test1').trigger('click'); // Nothing
$('#test2').find('span').trigger('click'); // Works
$('#test2 span').trigger('click'); // Also Works

이것은 당신이 클릭하는 것에 관한 것이며 태그가 아니라 그 안에있는 것입니다. 불행히도, 베어 텍스트는 JQuery에 의해 인식되지 않는 것 같지만 바닐라 자바 ​​스크립트에 의해 인식됩니다.

document.getElementById('test1').click(); // Works!

또는 jQuery 객체를 배열로 액세스하여

$('#test1')[0].click(); // Works too!!!


답변

이 질문은 Google에서 ” <a>요소 클릭 발생 트리거”로 1 위를 차지했으며 실제로 어떻게 응답하는지 언급하지 않으므로 다음과 같이하십시오.

$('#titleee a')[0].click();

설명 : jQuery-object가 아닌click 기본 html 요소에서 를 트리거 합니다 .

천만에요. 🙂


답변

제공 한 코드를 사용하면 아무 일도 일어나지 않을 수 있습니다. 두 번째 @mashappslabs : 먼저 이벤트 핸들러를 추가하십시오.

$("selector").click(function() {
    console.log("element was clicked"); // or alert("click");
});

그런 다음 이벤트를 시작하십시오.

$("selector").click(); //or
$("selector").trigger("click");

콘솔에 메시지가 나타납니다.


답변

앵커에서 이벤트를 트리거하려고하면 가지고있는 코드가 작동합니다.

$(document).ready(function() {
  $('a#titleee').trigger('click');
});

또는

$(document).ready(function() {
  $('#titleee li a[href="#inline"]').click();
});

또는

$(document).ready(function() {
  $('ul#titleee li a[href="#inline"]').click();
});


답변

클릭 이벤트를 먼저 설정해야 트리거를 발생시킬 수 있습니다.

//good habits first let's cache our selector
var $myLink = $('#titleee').find('a');
$myLink.click(function (evt) {
  evt.preventDefault();
  alert($(this).attr('href'));
});

// now the manual trigger
$myLink.trigger('click');


답변

이것은 이벤트를 트리거하는 방법입니다

<!DOCTYPE html>
    <html>
    <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script>
    $(document).ready(function(){
        $("input").select(function(){
            $("input").after(" Text marked!");
        });
        $("button").click(function(){
            $("input").trigger("select");
        });
    });
    </script>
    </head>
    <body>

    <input type="text" value="Hello World"><br><br>

    <button>Trigger the select event for the input field</button>

    </body>
    </html>