以编程方式在页面加载时使用jQuery单击链接

时间:2012-10-24 00:07:40

标签: javascript jquery

我在页面上有一个链接,我想在页面加载时以编程方式单击它。

这样的事情:

$(document).ready(function () {

   // code to make the page think $('a.tagcloud-link') is clicked
});

该链接是一个AJAX调用,在Wordpress后端显示流行的标签。

该功能无法轻易编辑,因为它取决于很多事情。

所以我想触发在页面加载时调用最流行标签的AJAX链接。

如果有效,这将解决我的所有问题。

该链接是$('a.tagcloud-link')

拜托,请帮助我,我花了好几个小时把头发拉出来尝试并且没有做到这一点。谢谢。

11 个答案:

答案 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
        };
    })

并且有效:)