4

嗨,我有一个从数据库自动填充的引导下拉菜单。当我单击菜单中的一项时,我试图让事件发生。我努力了

$("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>
4

2 回答 2

1

问题在于您的班级名称。您正在注册委托的事件处理程序,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!!");
    });
});
于 2013-05-20T20:31:08.950 回答
0

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

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

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

此外,您应该在实际按钮上注册 click 事件并使用.click()而不是.on()

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

另外,你有一个错字

.addClass("ddBntClick")

应该:

.addClass("ddBtnClick")
于 2013-05-20T20:23:19.933 回答