Javascript JQuery/PHP触发器单击
我用PHP编写了一段代码,它将显示数组的前10个部分,如果单击“下一步”,它将显示数组的下10个部分,依此类推。当我手动点击“下一步”按钮时,它工作得非常好。问题是我想让它自动运行 这就是我到目前为止写的: jqueryJavascript JQuery/PHP触发器单击,javascript,php,jquery,Javascript,Php,Jquery,我用PHP编写了一段代码,它将显示数组的前10个部分,如果单击“下一步”,它将显示数组的下10个部分,依此类推。当我手动点击“下一步”按钮时,它工作得非常好。问题是我想让它自动运行 这就是我到目前为止写的: jquery $(function() { $('#hej').click(function() { alert('next button clicked'); }); setTimeout(function() { $('#hej'
$(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”)
我认为这会起作用:
$('#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> ';
?>
他为什么要打开一个新窗口?当您触发单击时,浏览器确实会导航到另一个页面。我忘了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> ';
?>