【发布时间】:2015-08-15 05:39:20
【问题描述】:
我的页面上有一个下拉列表,manager.php,在这里。抱歉格式化 - 引导程序。:
<!-- Bootstrap -->
<script type="text/javascript" src="https://netdna.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="../../css/bootstrapstyle.css">
<!-- Bootstrap Dropdown Enhancements-->
<script type="text/javascript" src="../../js/dropdowns-enhancement.js"></script>
<link rel="stylesheet" href="../../css/dropdowns-enhancement.css">
<div class="row">
<div class="col-lg-6">
<div class="input-group">
<div class="input-group-btn">
<button type="button" class="btn dropdown-toggle btn-primary" data-toggle="dropdown" aria-expanded="false">Search By <span class="caret"></span></button>
<ul id="searchBy" class="dropdown-menu" role="menu">
<li class="disabled"><a href="#">Search By...</a></li>
<li><a href="#">cost</a></li>
<li><a href="#">name</a></li>
</ul>
</div>
</div>
</div>
</div>
<div id="everything">
</div>
当我直接加载 manager.php 并且下拉菜单初始化时,此代码工作正常,但这不是我需要代码工作的方式。
用户从return.php开始;这个页面从用户那里收集了一堆数据并将其返回给manager.php。
一旦用户在return.php 上选择这样做,就会运行此代码:
$.ajax({
type: 'POST',
url: 'manager.php',
data: {number:number, location:location, project:project, comments:comments},
success:function(data){
$('#everything').html(data);
}
});
ajax 调用正常工作,它将manager.php 返回的数据加载到everything div 中。它按预期传递数据。将manager.php 加载到 DIV 后唯一不起作用的是下拉菜单。我需要了解我做错了什么导致此功能,以便我可以防止将来这样做。
【问题讨论】:
-
因为您可能正在替换 html 并且事件不会神奇地重新连接起来。您需要重新运行代码或了解事件委托。
-
你能提供重现问题的 plunker 吗?
-
你能发布你调用来创建下拉列表的代码吗?您是否尝试过在 AJAX 回调中简单地调用
$("#searchBy").dropdown();? -
@tymeJV,下拉列表是我原始问题中的第一部分代码。它通过引导程序的下拉增强 .css 和 .js 文件(behigh.github.io/bootstrap_dropdowns_enhancement)进行操作
-
@JohnWu -- 你试过回忆它吗?
标签: javascript jquery html ajax twitter-bootstrap