html锚标签onclick问题!

时间:2010-02-09 22:42:00

标签: html anchor

我遇到了一个html锚标签的奇怪问题。我在html页面上有一个锚标签,点击'a'标签后它应该给我一个警告信息。它运作良好。但是,如果我使用jquery将新的'a'标记添加到html页面,并且单击附加的'a'标记不起作用。我能够给予href,目标等等等等,但是...... onlick功能无效。任何想法???

提前致谢。

4 个答案:

答案 0 :(得分:1)

在jQuery中,您通常使用选择器上的.click()函数来设置单击处理程序。请注意,如果多个项目与选择器匹配,则多个项目将安装单击处理程序。

这是一个简单的代码片段,可以做你想做的事情:

<html>
    <head>
        <script type="text/javascript" src="jquery.js"></script>
    </head>
    <body>
        <script type="text/javascript">

        function addLink(label, msg) {
            /* Create link element.
               The href="#" makes the link act like a link
               (be highlighted, selectable, etc.).
               The onClick="return false;" keeps the link from
               scrolling the browser to the top of the page.
               The onClick is not interfered with by jQuery's
               .click() . */
            var link = $('<a href="#" onClick="return false;">' + label + '</a>');

            /* Install click handler. */
            function clicked_handler() {
                alert(msg);
            }
            link.click(clicked_handler);

            /* Add the link to the body. */
            $('body').append(link);
        }

        addLink('Link 1', 'You clicked link 1');
        $('body').append('<br/>');
        addLink('Link 2', 'You clicked link 2');

        </script>
    </body>
</html>

答案 1 :(得分:0)

你的问题不清楚。

我假设您通过撰写<a>,然后在文档中添加新的$('a.whatever').click(function() { ... })代码,为<a>代码添加了点击处理程序。

当您编写$(...).click(...)时,它只会在您添加处理程序时为$(...)找到的元素添加处理程序。它不适用于您稍后添加的任何元素。

您可能正在寻找jQuery的live方法,该方法将处理与选择器匹配的所有元素的事件,无论它们何时被创建。

例如:

$('a.whatever').live('click', function(e) { ... });

答案 2 :(得分:0)

尝试使用:

$("a").live("click", function(){
 alert("Tadah!");
});

答案 3 :(得分:0)

添加事件适用于页面上已有的内容。如果您添加更多内容您必须将新的click事件绑定到这个新事物或使用live,这应该是第二个选项

所以不要做

$(something).append('<a href="" etc. ');

尝试这样的事情

$('<a></a>').attr('href','some url here').bind('click',function(){}).appendTo('body');