我在页面上有一个链接,我想在页面加载时以编程方式单击它。
这样的事情:
$(document).ready(function () {
// code to make the page think $('a.tagcloud-link') is clicked
});
该链接是一个AJAX调用,在Wordpress后端显示流行的标签。
该功能无法轻易编辑,因为它取决于很多事情。
所以我想触发在页面加载时调用最流行标签的AJAX链接。
如果有效,这将解决我的所有问题。
该链接是$('a.tagcloud-link')
拜托,请帮助我,我花了好几个小时把头发拉出来尝试并且没有做到这一点。谢谢。
答案 0 :(得分:6)
试试这个:
$('a.tagcloud-link')[0].click();
使用[0]
获取对jQuery对象中第一个DOM对象的引用,这样就会调用DOM object's (non-jQuery) .click()
method,这将导致导航到指定的href
链接。
使用jQuery's .click()
method会调用您绑定到该元素的任何单击处理程序,但不会导致默认行为实际跟随该链接。
真的简单演示:http://jsfiddle.net/mtBav/
答案 1 :(得分:4)
如果该元素拥有与 jQuery 绑定的事件处理程序,您可以只调用.trigger( 'click' )
或缩短.click()
;
$(function() {
$('a.tagcloud-link').click();
});
当然,在您调用.click()
时,必须已绑定该事件处理程序。
答案 2 :(得分:3)
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("a#tobeclicked").click(function () {
// if it has to be href
var tohref = $(this).attr("href");
alert(tohref);
window.location=tohref;
// else you want add some functions
$("#mydiv").fadeIn();
});
$("a#tobeclicked").trigger('click');
});
</script>
<a id="tobeclicked" href="http://www.google.com">Go!</a>
<div id="mydiv" style="display:none;">Stroam</div>
答案 3 :(得分:1)
如果我正确理解了这个问题:
$('a.tagcloud-link').click();
答案 4 :(得分:1)
如果你已经绑定$('a.tagcloud-link')。点击(),它将调用该函数。以下代码应该可以使用。
$(document).ready(function () {
$('a.tagcloud-link').click();
});
但是如果你想在其href中打开链接,你需要使用window.location
。
答案 5 :(得分:1)
尝试
$('a.tagcloud-link').click();
OR
$('a.tagcloud-link').trigger('click')
答案 6 :(得分:1)
$(function() {
$('a.tagcloud-link').on('click', function() {
// execute code here
});
});
这是正确使用jQuery。
答案 7 :(得分:1)
老实说,我认为这里的其他人都是对的,我认为这个问题是错误的。但继续我的尝试,我认为我所做的只是框架它有点不同。只是想帮忙。
document.addEventListener("DOMContentLoaded", function() {
EventL();
});
// global
var tagLoad = false;
function eventL() {
$('a.tagcloud-link').on('click', function() {
tagLoad = true;
});
// you can repurpose this, its for page refresh right now. but
// I think it helps with your general idea?
$(window).load(function(){
init();
});
}
function init () {
if (tagLoad == true) {
// Load your tags.
}
}
答案 8 :(得分:0)
这些都没有帮助。 我通过绕过链接并在加载时执行它来自行修复它。
答案 9 :(得分:0)
function my_admin_head(){
echo
'<script type="text/javascript">
jQuery(function( $ ){
$(\'a.tagcloud-link\').each( function(){
tagBox.get( $(this).attr(\'id\') );
$(this).unbind().click(function(){
$(this).siblings(\'.the-tagcloud\').toggle();
return false;
});
return false;
});
});
</script>';
}
add_action('admin_head', 'my_admin_head');
也许它可以帮助某人。
答案 10 :(得分:0)
也许你用来访问元素的方式是将jquery语法与javascript混合使用。我也遇到了这个问题,但我试图以错误的方式访问元素。
就像这样
$(document).ready(function(e){
alert(location.hash);
if (location.hash == "#22") {
$("gallery div a")[1].click(); //without #
};
})
但应该是这样的
$(document).ready(function(e){
alert(location.hash);
if (location.hash == "#22") {
$("#gallery div a")[1].click(); //with #, cause I was using an ID
};
})
并且有效:)