【问题标题】:Cant find a button after ajax loadajax加载后找不到按钮
【发布时间】:2019-01-31 16:35:36
【问题描述】:

我有一些填充表格的代码,其中有一些按钮,这些按钮加载执行 AJAX 加载。这很好用,它将内容加载到名为“DIV1”的 DIV 中。在DIV1中单击它们时,我似乎找不到任何按钮,我认为它们在DOM树中丢失了。

我必须获取原始表中名为“mainstuff”的按钮的代码这很好用。

$(document).ready(function(){
    $(".mainstuff button").click(function(){
        $('#loader').show();
        status = $(this).attr("data-name");
        var new_url = "demo_text.php?job_id="+status;
        //alert(status);
        $("#div1").load(new_url);
    });
});

AJAX 负载会产生这样的结果:

echo "<table class='mainTable'>
<tbody>
<tr>
<td width='50%'><li>Pick up time : <B>".$new_date."</B></li><li>Pick up time : <B>".$p_time."</B></li><li>Pick up address : <B>".$p_address."</B></li><li>Destination address : <B>".$d_address."</B></li><li>Return date : <B>".$d_date_new."</B></li><li>Return time : <B>".$d_time."</B></li><li>Number of passengers : <B>".$pax."</B></li><li>Estimated distance : <B>".$est_dist."</B></li><li>Estimated time : <B>".$est_time."</B></li></td>
<td width='50%' id='description'><li>Purpose : <B>".$purpose."</B></li><li>Extra requirements : <B>".$list."</B></li><li>Notes : <B>".$notes."</B></li><li>Current bids : <B>12</B></li><li>Lowest bid : <B>£180</B></li><li>Your lowest bid : <B>£160</B></li><li>Make a new bid of : £<input id='bid_amount' type='text'><button id='identify_this_btn' data='".$job_id."' type='button' class='btn btn-bid'><span class='glyphicon glyphicon-pencil'></span> MAKE BID </button></li><div id='actions'><button type='button' class='btn btn-success' onclick='closedown()'><span class='glyphicon glyphicon-remove-circle'></span> CLOSE </button></div></td>
</tr>
</tbody>
</table>

我尝试在单击按钮时执行此操作但无济于事?我做错了什么?

$(document).ready(function(){
    $(".mainstuff div1 mainTable button").click(function(){
        alert("text");
    });
});

任何帮助将不胜感激。谢谢

【问题讨论】:

  • 很抱歉,它可能是,但由于我不知道那是什么,我不太可能将它作为以前的搜索词输入!
  • 重复关闭并不是一件坏事。这不是惩罚。副本是为了让其他人在输入比副本更接近您的问题的搜索词时找到答案。您的问题可以作为其他人找到他们正在寻找的答案的路标,我们可以防止答案出现在多个地方。
  • 没有问题,还是谢谢

标签: javascript jquery ajax dom button


【解决方案1】:

您选择了错误的元素

替换选择器".mainstuff div1 mainTable button"
"#div1 .mainTable button"

之后,由于内容是动态的,因此您需要进行事件委托

$(document).on("click", "#div1 .mainTable button", function(){
    alert("text");
});

【讨论】:

    猜你喜欢
    • 2015-07-19
    • 1970-01-01
    • 2011-11-05
    • 1970-01-01
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多