我的问题与此one
相同我也面临同样的问题,href
未触发事件'点击'
然后我改为alt
,元素为span
。这是我的代码
<li><h2><span id='aa' alt="#inbox"><span>Inbox</span></span></h2></li>
这一行是我ul
的第二个孩子。我想在页面加载时触发/单击此行。
但我想知道如何触发此跨度(#aa)点击事件。以下代码已经过尝试但没有工作。
先试试:
var href = $('#aa').attr('alt');
window.location.href =href; // this gave me 404 error
第二次尝试:
$('#aa').trigger("click") // this has no change
编辑当点击上述li&gt; span时,将执行一项功能。我想在页面加载时自动点击li的跨度。 this question的答案说明使用<a href>
时出现的一些问题。因此,我使用了span
代码。我使用jQuery 1.6
答案 0 :(得分:3)
您的第一次尝试为您提供了404,因为您尝试将网址更改为#inbox
。我假设您实际上想要将哈希附加到当前URL,在这种情况下,您可以使用location.hash
属性:
window.location.hash = href;
我认为您可能还想使用a
元素而不是span
,因为默认情况下它会有这种行为,您不必绑定点击事件来处理它。
答案 1 :(得分:1)
修改:
还有一件事你指的是适用于A
代码的网址,不适用于Span
代码,Jquery how to trigger click event on href element这是您在问题中提到的A代码。
撰写点击事件
$('#aa').click( function()
{
alert('span clicked');
});
触发事件而不是
$('#aa').trigger("click");
答案 2 :(得分:1)
如果我理解正确,这将解决您的问题;
给可点击的属性这样跨越。
$('#aa')
.bind('click', function () {
.....
});
并在document.ready中调用它。
$('#Control_2').click();
答案 3 :(得分:1)
我认为最简单的解决方案是将您的跨度更改为锚点标记,以便在加载后处理任何点击,如果您只想将哈希标记添加到当前网址。然后你可以有一点jquery来选择你想要的页面加载链接。
<!doctype html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
window.location.hash = $('#second').attr('href');
});
</script>
</head>
<body>
<ul>
<li><a href="#first">First</a></li>
<li><a href="#second" id="second">Second</a></li>
</ul>
</body>
</html>
如果那不是你想要的,你想在点击上运行更多的代码,那么你可以将你的点击逻辑分离成一个函数并在页面加载时调用它,如下所示:
<!doctype html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
//your function that does stuff on click
function doStuff(item) {
window.location.hash = $(item).attr('href');
//cancel the click
return false;
}
//call the function on page load
doStuff($('#second'));
//call the function on click
$('#nav a').click(function() { doStuff(this); });
});
</script>
</head>
<body>
<ul id="nav">
<li><a href="#first">First</a></li>
<li><a href="#second" id="second">Second</a></li>
</ul>
</body>
</html>