我正在尝试在bootstrap下拉菜单上实现click事件

时间:2013-05-20 20:22:13

标签: javascript twitter-bootstrap

您好我有一个从数据库自动填充的bootstrap下拉菜单。当我点击菜单中的某个项目时,我正试图让事件发生。我试过了

$("body").on("click", ".ddBtnClick", function(event) { 
    console.log("Is it working? Yes!!");
});

“.ddBtnClick”是分配给列表中每个项目的类。但什么都没发生。 以下是从数据库填充列表的代码。

$.getJSON("http://jeremiah.abrahamott.com/DadsCarsObjects.txt", function(data){
    $.each(data.aaData, function(i, option){
    $("#dropdownfill").append($('<li/>').append($('<a/>').attr("id", option.Year).attr("href", "#").attr("tabindex", "-1").addClass("ddBntClick").text(option.Make)))
    });
});

这是下拉列表的html。

<div class="row" style="margin-left:50px;">
            <div class="span3">
                <div class="btn-group">
                    <a class="btn dropdown-toggle" data-  toggle="dropdown" href="#">Make
                        <span class="caret"></span>
                    </a>
                    <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu" id="dropdownfill">

                    </ul>
                </div>
            </div>
    </div>

2 个答案:

答案 0 :(得分:1)

问题在于您的className。您正在为ddBtnClick注册委派的事件处理程序,但实际的类名是ddBntClick

$("body").on("click", ".ddBtnClick", function(event) { 
    console.log("Is it working? Yes!!");
});

.addClass("ddBntClick");

在施工期间更改班级名称或更改活动委派。

$(function()
{
    $("body").on("click", ".ddBntClick", function(event) {  
        console.log("Is it working? Yes!!");
    });
});

答案 1 :(得分:0)

您是否尝试在document.ready事件中包装Javascript?

$(function()
{
    $("body").on("click", ".ddBtnClick", function(event) {  
        console.log("Is it working? Yes!!");
    });
});

有关更多信息和示例,请参阅jQuery .ready() documentation

此外,您应该在实际按钮上注册点击事件,并使用.click()代替.on()

$(function()
{
    $(".ddBtnClick").click(function(event) {  
        console.log("Is it working? Yes!!");
    });
});

此外,您还有拼写错误

.addClass("ddBntClick")

应该是:

.addClass("ddBtnClick")