首页 > jquery 模拟点击anchor

jquery 模拟点击anchor

html 结构是这样的:

<div class="survey" id="k_1">
  <a href="#k_2">1</a>
  ...
  <input type="radio" id="inv_1">
</div>
...
<div class="survey" id="k_2">
...
</div>

我想点击radio button的时候,同事click那个anchor

$("#inv_1").on('click',function(){
  $(this).closest('.survey').find("a").click();
});

结果是没反应,如果我手动点击anchor的那个1时,能链接到下面的内容。 请大家帮忙看看大概什么原因。 谢谢


使用jQuery的trigger方法:

$("#inv_1").on('click',function(){
    $(this).closest('.survey')
    .siblings("a")
    .trigger('click'); // <<<<<<<<<<<<< 注意这里
});

我给采纳的问题补充下,主要是针对这个

$(this).closest('.survey').find("a")[0].click();

下面这段代码,是我最近研究taobao加密链接跳转发现的.

 if (!window.attachEvent) {

            document.write('<input style="display:none" type="button" id="exe" value="" onclick="window.location=\''+unescape(qso.tu)+'\'">');
            document.getElementById('exe').click();
        } else {
//只适用于IE和opera
            document.write('<a style="display:none" href="'+unescape(qso.tu)+'" id="exe"></a>');
            document.getElementById('exe').click();
        }

结论

如果是IE和opera, 可以直接对a对象直接调用click()

其他浏览器不支持对a对象直接调用click()


<a href="#k_2"><span id="k_2_span">1</span></a> 
$("#inv_1").on('click',function(){ 
  $(this).closest('.survey').find("#k_2_span").click(); 
  //or
  $(this).closest('.survey').find("a")[0].click();
}); 

加上一个这个就好了,实测有效

$('body').on('click', 'a', function() {
location.href = $(this).attr('href');
});
【热门文章】
【热门文章】