jQuery触发元素的事件

时间:2012-04-19 12:22:05

标签: javascript jquery

我的问题与此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

4 个答案:

答案 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代码。

如果你正在触发click事件,那么你应该使用span来绑定click事件而不是使用触发器函数来触发它

撰写点击事件

$('#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>