html 结构是这样的:
<p class="survey" id="k_1">
<a href="#k_2">1</a>
...
<input type="radio" id="inv_1">
</p>
...
<p class="survey" id="k_2">
...
</p>
我想点击radio button的时候,同事click那个anchor
$("#inv_1").on('click',function(){
$(this).closest('.survey').find("a").click();
});
结果是没反应,如果我手动点击anchor的那个1时,能链接到下面的内容。 请大家帮忙看看大概什么原因。 谢谢
PHP中文网2017-04-10 12:49:13
<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();
});
黄舟2017-04-10 12:49:13
我给采纳的问题补充下,主要是针对这个
$(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()
ringa_lee2017-04-10 12:49:13
加上一个这个就好了,实测有效
$('body').on('click', 'a', function() {
location.href = $(this).attr('href');
});
ringa_lee2017-04-10 12:49:13
$("#inv_1").on('click',function(){
$(this).closest('.survey')
.siblings("a")
.trigger('click'); // <<<<<<<<<<<<< 注意这里
});