아래 방법과 같이 jQuery를 사용하여 하이퍼 링크에서 클릭 이벤트를 트리거하려고합니다. 하이퍼 링크에는 ID가 없지만 cssclass가 있습니다.
$(document).ready(function () { $('.cssbuttongo').trigger('click'); });
위의 기능이 작동하지 않습니다. 이것은 하이퍼 링크입니다
<a href="hyperlinkurl" class="cssbuttongo">hyperlink anchor</a>
답변
나는 이것을 증명할 사실적인 증거가 없지만 이미이 문제에 부딪 혔습니다. <a>
태그 에서 click () 이벤트를 트리거하는 것이 입력 버튼과 같은 방식으로 작동하지 않는 것 같습니다.
내가 사용한 해결 방법은 브라우저가 다음과 같이 요청 리소스를로드하도록하는 창에 location.href 속성을 설정하는 것입니다.
$(document).ready(function()
{
var href = $('.cssbuttongo').attr('href');
window.location.href = href; //causes the browser to refresh and load the requested url
});
});
편집하다:
나는 js 바이올린을 만들 것이지만 jsfiddle이 iframe을 사용하여 코드를 렌더링하는 방법과 혼합 된 질문의 성격은 그것을 불가능하게 만듭니다.
답변
네이티브 DOM 메서드는 올바른 일을합니다.
$('.cssbuttongo')[0].click();
^
Important!
이는 href
URL, 조각 (예 🙂 #blah
또는 javascript:
.
이것은 click
jQuery click
메서드 (매우 불완전하고 완전히 무시 함 href
) 대신 DOM 메서드를 호출합니다 .
답변
romkyns의 훌륭한 답변 외에도 .. 관련 문서 / 예제가 있습니다.
DOM 요소 에는 네이티브 .click()
메서드가 있습니다.
이
HTMLElement.click()
메서드는 요소에 대한 마우스 클릭을 시뮬레이션합니다.클릭이 사용되면 문서 트리 (또는 이벤트 체인)의 상위 요소로 버블 링되는 요소의 클릭 이벤트도 발생하고 클릭 이벤트도 발생합니다. 그러나 클릭 이벤트의 버블 링으로 인해
<a>
실제 마우스 클릭이 수신 된 것처럼 요소가 탐색을 시작 하지 않습니다 . (mdn 참조)
관련 W3 문서 .
몇 가지 예 ..
-
jQuery 객체에서 특정 DOM 요소에 액세스 할 수 있습니다. (예제)
$('a')[0].click();
-
.get()
메소드를 사용하여 jQuery 객체에서 DOM 요소를 검색 할 수 있습니다 . (예제)$('a').get(0).click();
-
예상대로 DOM 요소를 선택하고
.click()
메서드를 호출 할 수 있습니다 . (예)document.querySelector('a').click();
네이티브 이벤트 를 트리거하는 데 jQuery가 필요 하지 않다는 점을 지적 할 가치가 .click()
있습니다.
답변
JavaScript를 통해 클릭을 트리거하면 하이퍼 링크가 열리지 않습니다. 이것은 브라우저에 내장 된 보안 조치입니다.
그러나 몇 가지 해결 방법 은 이 질문 을 참조하십시오 .
답변
여러분들에게 알려 드리고 싶은 대답이 항상 작동하는 것은 아닙니다.
다음은 실패 할 예입니다.
만약 <href='/list'>
href = $('css_selector').attr('href')
"/list"
href = document.querySelector('css_selector').href
"http://localhost/list"
또는 jQuery에서 얻은 href를 여기에 추가 할 수 있습니다.
href = document.URL +$('css_selector').attr('href');
또는 jQuery 방식
href = $('css_selector').prop('href')
마지막으로 브라우저의 현재 페이지 URL을 변경하려면 호출하십시오.
window.location.href = href
또는 사용하여 튀어 나오십시오. window.open(url)
다음 은 JSFiddle의 예입니다.
답변
링크 대신 버튼을 클릭하는 방법과 비슷한 문제가 발생했습니다. .trigger ( ‘click’) 또는 [0] .click () 메서드에서는 성공하지 못했고 그 이유를 알지 못했습니다. 마침내 다음이 저에게 효과적이었습니다.
$('#elementid').mousedown();
답변
