jquery / ajax - .load保持相同的JQuery

时间:2014-08-08 09:56:45

标签: javascript jquery html ajax

基本上,

我尝试做的是有一个按钮,当您点击时,会加载另一个.html表单 它有一个按钮到下一个.html页面,依此类推......

第一部分可以工作,而且,对于要加载的表单,当加载下一个表单时,jquery对按钮不起作用。例如:

index1.html:

<button id="LoadForm" value="form1.html">Load the form</button>

$(document).ready(function() {
    function foo(x) {
        $('.content').load(x);
    }

    $('#LoadForm').click(function() {
        var ele = $(this).attr("value");
        $(this).hide();
        form(ele);
    });
}); 

在form1.html中:

<button id="LoadForm" value="index.html">Go to form2..</button>

我在哪里错了?

1 个答案:

答案 0 :(得分:1)

1)您在同一页面上无法重复ID,因此.content必须包含原始的#LoadForm按钮(我认为是这样)并且< / p>

2)您需要为动态添加的元素使用委托事件处理程序:

$(document).ready(function() {
    function foo(x) {
        $('.content').load(x);
    }

    $(document).on('click', '#LoadForm', function() {
        var ele = $(this).attr("value");
        $(this).hide();
        form(ele);   // This should be foo in your example :)
    });
}); 

这可以通过监听冒泡到不变祖先的点击事件来实现(document是没有更接近的最佳默认值。永远不要使用'body'作为它有与造型有关的问题)。它然后应用jQuery过滤器。它然后生成事件的所有选定元素应用提供的函数。

3)您的示例中有foo form。请更正代码:)