无法在jQuery中获取click事件?

时间:2011-12-26 19:01:46

标签: javascript jquery event-handling

以下是我的HTML代码:

<li>
    <a id="section1" href="#" onclick="return false">&raquo; Section 1</a>
    <ul>
        <li><a href="link1.html" target="showframe" id="tab1" name="tab1">Tab 1</a></li>
        <li><a href="link2.html" target="showframe" id="tab2" name="tab2">Tab 2</a></li>
    </ul>
</li>

它实际上是一个jQuery手风琴。现在行$('#section1').click();$('#'+section).click();适用于IE和Chrome。对于内部Anchor标记,我尝试使用:

$('a#'+tab_name_from_querystring).click();

$('a[name="'+ tab_name_from_querystring+'"]').click();

$('a#tab1').click();

所有这些都无法在任何浏览器中使用。如果我用这个:

document.getElementById(tab_name_from_querystring).click().

仅适用于IE,不适用于Chrome。

请帮忙吗?

更新 这是完整的JavaScript代码:

<script type="text/javascript">
    var query = window.location.search.substring(1);
    var params = query.split('&');
    var temp = params[0].split('=');
    var section = temp[1].toLowerCase();
    temp = params[1].split('=');
    var tab = temp[1].toLowerCase();
    $(document).ready(function(){
        $('#'+section).click();
        setTimeout(function(){
            $("a[name='tab1']").click();  // Did not work
            $('a[name="'+tab+'"]').click(); // Did not work
            document.getElementById(tab).click(); // Works only in IE
        }, 500);

    });
</script>

5 个答案:

答案 0 :(得分:1)

删除a

之前的#

类似的东西:

 $('#'+ tab).click();

它适用于jsFiddle,查看它here

答案 1 :(得分:0)

尝试使用

$(selector).trigger("click");

答案 2 :(得分:0)

由于您的链接上有ID,您是否尝试过:

$( '#' + tab_name_from_querystring)。单击();

$( '#TAB1')点击();

答案 3 :(得分:0)

也许你需要那个:

window.location.href = $( "a#tab1" ).attr( "href" );

答案 4 :(得分:0)

好的。根据 abuduba 的提示,以下代码有效:

$('iframe[name="showframe"]').attr('src', $("a[name="+tab+"]").attr('href'));

即,将Anchor标记的HREF属性的值复制到所需IFRAME的SRC属性。

谢谢每一个