Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery/PHP触发器单击_Javascript_Php_Jquery - Fatal编程技术网

Javascript JQuery/PHP触发器单击

Javascript JQuery/PHP触发器单击,javascript,php,jquery,Javascript,Php,Jquery,我用PHP编写了一段代码,它将显示数组的前10个部分,如果单击“下一步”,它将显示数组的下10个部分,依此类推。当我手动点击“下一步”按钮时,它工作得非常好。问题是我想让它自动运行 这就是我到目前为止写的: jquery $(function() { $('#hej').click(function() { alert('next button clicked'); }); setTimeout(function() { $('#hej'

我用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”)

我认为这会起作用:

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

发生的情况是,当您手动单击链接时,浏览器将更改为href路径,而触发时不会发生这种情况,因此您必须以编程方式执行此操作。

当您调用
.trigger('click')
时,将触发任何附加的
click
事件处理程序,但是对于没有任何子元素的锚点,将不遵循href

但是,您可以使用纯JavaScript触发单击:

setTimeout(function() {
    $('#hej')[0].click();
}, 2000);
[0]
符号访问纯JavaScript DOM元素,而不使用jQuery包装器

解决问题的一种方法

基本上Jquery不能点击链接,但需要点击链接的文本。明白我的意思;)

php

<?php
if ($page < $totalPages)
echo '<a id="hej" href="?page='.($page + 1).'"><span>Next</span></a>&nbsp;';
?>


他为什么要打开一个新窗口?当您触发单击时,浏览器确实会导航到另一个页面。我忘了window.open仅用于在新窗口中打开,但使用window.location.href=$(this.attr('href')可以正常工作,并在同一页面中加载。我很惊讶,在触发对“a”元素的单击时,它实际上不起作用。好发现!您在哪里递增
$page
<?php
if ($page < $totalPages)
echo '<a id="hej" href="?page='.($page + 1).'"><span>Next</span></a>&nbsp;';
?>