下拉菜单上的问题

时间:2016-07-15 21:37:52

标签: javascript jquery html

我有以下javascript和以下HTML摘录代码。我有一个带有fantasyLink id的元素,我希望在点击它时,li下拉列表显示但它没有做任何事情,但当我在控制台上运行代码时,它会执行行动。点击的元素在图像中圈出。

enter image description here

enter image description here

$(document).ready(function () {
    $('#fantasyLink').on('click', function (){
                $('body').find('#dropLogin').click();
    });
});
<li class="dropdown" id="linkLogin">
                                <a id="dropLogin" href="#" class="dropdown-toggle" data-toggle="dropdown"><b>Login</b> <span class="caret"></span></a>
                                <ul id="login-dp" class="dropdown-menu">
                                    <li>
                                        <div class="row">
                                            <div class="col-md-12">
                                                <div id="message"></div>
                                                <label class="label-login">Iniciar sesión con:</label>
                                                <div class="social-buttons">
                                                    <fb:login-button scope="public_profile,email" data-size="xlarge" onlogin="checkLoginState();" class="btn">
                                                        Facebook
                                                    </fb:login-button>
                                                </div>

注意:我还尝试使用触发器,将open类添加到linkLogin元素,以便显示,切换类,其中没有一个工作...

4 个答案:

答案 0 :(得分:3)

您不应该$('body').find('#dropLogin').click()

由于.find()会返回一个对象数组,如果你这样做的话会有效:$('body').find('#dropLogin')[0].click()

但是,你不应该这样做。简单 -

$('#dropLogin').click();

那应该为你做这个伎俩。这是jQuery和选择器之美,如果你有ID你不需要搜索DOM,只需使用选择器。

或者而不是使用click事件,从看起来只是通过编程方式单击,您只需创建一个简单的函数 -

$(document).on('click', '#fantasyLink', function() {
    dropLogin();
});

var dropLogin = function() {
   //do something
}

答案 1 :(得分:1)

$('#fantasyLink').on('clic', function ()似乎错了。应该是click

答案 2 :(得分:0)

我发表评论,但我需要更多的代表点!

只是为了确认,是最初的onclick射击?如果不是,有时候我觉得这样做效果更好,即使它们都有效:

$(document).on('click', '#fantasyLink', function (){ ..

答案 3 :(得分:0)

我刚开始工作:

$('#fantasyLink').on('click', function (e){
   e.stopPropagation();
   $('#dropLogin').trigger( "click" ); 
}

stopPropagation似乎成了伎俩,但如果有人能够解释它会受到高度赞赏的原因。