[英]JQuery/PHP trigger click
我用PHP編寫了一個代碼,該代碼將顯示數組的前10個部分,如果單擊“下一步”,它將顯示該數組的后10個部分,依此類推。 當我手動單擊“下一步”按鈕時,它可以完美運行。 問題是我想使其自動運行。
到目前為止,這是我寫的:
jQuery的
$(function() {
$('#hej').click(function() {
alert('next button clicked');
});
setTimeout(function() {
$('#hej').trigger('click');
}, 2000);
});
PHP的
<?php
if ($page < $totalPages)
echo '<a id="hej" href="?page='.($page + 1).'">Next</a> ';
?>
此代碼發生的是,它在2秒后自動觸發了警報消息,但不會顯示陣列的下10個部分。 但是,如果我手動按“下一步”,它將同時觸發警報消息並顯示下10個部分。 請幫我解決這個問題!
在這種情況下,這可能不是問題,但您的代碼有什么問題呢?您要渲染多個具有相同ID(“嘿”)的錨元素。 而是使用例如class="hey"
和選擇器$(".hey")
。
當您調用.trigger('click')
,將觸發所有附加的click
事件處理程序,但是對於沒有任何子元素的錨點,將不會遵循href。
但是,您可以使用普通JavaScript觸發點擊:
setTimeout(function() {
$('#hej')[0].click();
}, 2000);
[0]
表示法訪問純JavaScript DOM元素,沒有jQuery包裝器。
一種解決方法
基本上,jQuery無法單擊鏈接,但是需要單擊鏈接的文本。 明白我的意思;)
$( function() {
$('#hej').click(function() {
alert('next button clicked');
});
setTimeout(function() {
$('#hej span').trigger('click');
}, 2000);
});
PHP的
<?php
if ($page < $totalPages)
echo '<a id="hej" href="?page='.($page + 1).'"><span>Next</span></a> ';
?>
我認為這會起作用:
$('#hej').click(function(e) {
e.preventDefault();
alert('next button clicked');
window.open($(this).attr('href'));
});
發生的情況是,當您手動單擊鏈接時,瀏覽器將更改為href路徑,而在觸發時不會發生這種情況,因此您必須以編程方式進行操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.