短: 如何在动态生成的div中使用Jquery .load函数,但是以非点击的ID为目标。
我的想法是我有一个按钮,每次使用jquery的“$()。append()”功能点击“name +(sequential id”)时添加新的div。将Div添加到页面后,“$()。load()”会用两个选择框和另一个div填充div。
加载后,用户可以使用第一个选择框来选择值。
当选择值时,点击并更改“$()。on(Jquery中的'click'”功能,并查看它是否是第一个选项框。
此时选择第一个选项框并更改后,“(。)。load()”用于更新第二个选项框周围的“#ajax-load-1”div。这是我无法获得“.load”来查看div的ID的地方。
我做了很多搜索并空手而归,有许多关于如何使用.on的教程(“点击”获取动态生成的元素的ID但不是未点击的元素的ID。 / p>
以下是上述代码的简化示例。
HTML:
<!-- |This box has been dynamically generated and named through a Jquery .load() | -->
<div id="dynamic-box-1">
<select id="select-1">
<option>1</option>
<option>2</option>
</select>
<!-- | div to be .load()'ed after an option is selected in #select-1 |-->
<div id="ajax-load-1">
<select id="ajax-select-1">
<option>1</option>
<option>2</option>
</select>
</div>
</div>
<!-- | End of dynamic box | -->
Jquery的
$("#select-1").on("click", function(){
$("#select-1").change(function(){
$("#ajax-load-1").load("../php/ajax-load-1.php");
});
});
答案 0 :(得分:0)
尝试使用事件委派
替换
$("#select-1").change(function(){
带
$(document).on('change', '#select-1', function(){
删除包含它的点击事件。
如果您提供的HTML
是您希望在应用程序中看到的那个。那么你可以用这样的东西得到div的id
$(document).on('change', '#select-1', function(){
var divId = $(this).next('div').attr('id');
$("#" + divId ).load("../php/" + divId + '"php");
});