簡體   English   中英

jQuery / PHP觸發器單擊

[英]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>&nbsp;';
?>

此代碼發生的是,它在2秒后自動觸發了警報消息,但不會顯示陣列的下10個部分。 但是,如果我手動按“下一步”,它將同時觸發警報消息並顯示下10個部分。 請幫我解決這個問題!

在這種情況下,這可能不是問題,但您的代碼有什么問題呢?您要渲染多個具有相同ID(“嘿”)的錨元素。 而是使用例如class="hey"和選擇器$(".hey")

當您調用.trigger('click') ,將觸發所有附加的click事件處理程序,但是對於沒有任何子元素的錨點,將不會遵循href。

但是,您可以使用普通JavaScript觸發點擊:

setTimeout(function() {
    $('#hej')[0].click();
}, 2000);

[0]表示法訪問純JavaScript DOM元素,沒有jQuery包裝器。

http://jsfiddle.net/ndrD5/

一種解決方法

基本上,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>&nbsp;';
?>

我認為這會起作用:

$('#hej').click(function(e) {
    e.preventDefault();
    alert('next button clicked');
    window.open($(this).attr('href'));
});

發生的情況是,當您手動單擊鏈接時,瀏覽器將更改為href路徑,而在觸發時不會發生這種情況,因此您必須以編程方式進行操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM