如何在动态生成的div中定位Jquery .load函数

时间:2013-06-18 23:58:31

标签: php jquery dom load onchange

短: 如何在动态生成的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");

});

});

1 个答案:

答案 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");
 });