jquery:单击按钮时未收到回调

时间:2013-06-16 11:37:26

标签: javascript jquery callback

我需要点击按钮发送请求,但是在点击按钮的点击事件时没有收到回叫。 以下是代码段:

$(document).ready(function () {
    var counter = 0;
    $("#trail").click(function () {
        $("#dialog").dialog();
        if (counter < 1) {
            $("#searchboxdiv").after('<input type="text" id="searchbox">');
            $("#searchbox").after('<input type="button" id="searchbutton" value="search">');
            counter++;
        }
    });
    $("#searchbutton").click(function () {
        var dataToSend = null;
        $.ajax({
            data: dataToSend,
            url: "FormHandler",
            success: function (result) {},
            beforeSend: function () {
                dataToSend = $("#searchbox").val();
            }
        });
    });
    $("#searchboxdiv").on('click', "#searchbutton", function(){
        var data = null;

    });
});

我动态地在对话框中添加了文本框,单击对话框中的按钮,未收到回调

2 个答案:

答案 0 :(得分:1)

使用事件委派(动态添加#searchbutton

 $('#searchboxdiv').on('click',"#searchbutton",function(){

答案 1 :(得分:1)

您的选择:

  • 使用事件委派。将点击绑定到立即静态父级,如下所示:

     $("#searchboxdiv").on('click', "#searchbutton", function(){ });
    
  • 或者,将其绑定到文档。

     $(document).on('click', "#searchbutton", function(){ });
    
  • 或者,在counter++;之后移动现有点击,即在$("#trail")的点击处理程序中。

有关详细信息,请参阅on()