如何在使用AJAX加载页面的一部分后执行JavaScript

时间:2013-01-07 18:11:45

标签: jquery javascript-events

如何使用jQuery加载文件的某个部分后,在文件的头文件中执行JavaScript,使用此代码$("#code_block").load('newexpenses.php #deposit_table');加载页面的某个部分..例如,下面是代码的一部分已加载。

<table id=""><td><span class="f3">Cheque No</span></td>
    <td><input type="text" name="ch_no" id="ch_no" value=""></td>
</tr><tr>
    <td></td>
    <td><input type="submit" name="save_expenses" id="save_expenses" value="Save Expenses"></td>

文件newexpenses.php在其标题中有一些JavaScript和Jquery,它们应该在单击提交按钮时执行。例如下面

var urldata = 'r='+rno+'&d='+desc+'&a='+amt+'&e='+exp_type+'&p='+paymode+'&c='+ch_no+'&save=1';
            //alert(urldata);

            $.ajax({
                type : "GET",
                data : urldata,
                url:"save.php",
                cache: false,
                success:function(result2){
                    $(".div1").html(result2);
                } // ends success function
            }); // ends ajax call

但是在部分html加载到页面后...提交按钮将无效..

请建议正确的方法

3 个答案:

答案 0 :(得分:1)

如果异步加载#save_expenses,我相信你想委派你绑定的事件。例如,您可能有:

$("#save_expenses").on('click' ...

但是,由于#save_expenses在绑定时不存在,您需要委托它:

$("#code_block").on('click', '#save_expenses', function () { ...

答案 1 :(得分:0)

您可以在HTML中添加javascript,它会被执行:

<table id="">
  <tr>
    <td><span class="f3">Cheque No</span></td>
    <td><input type="text" name="ch_no" id="ch_no" value=""></td>
  </tr>
  <tr>
    <td></td>
    <td><input type="submit" name="save_expenses" id="save_expenses" value="Save Expenses">
    </td>
  </tr>
</table>

<script type="text/javascript"> 
    $('#save_expenses').click(function(){
    var urldata = 'r='+rno+'&d='+desc+'&a='+amt+'&e='+exp_type+'&p='+paymode+'&c='+ch_no+'&save=1';
        //alert(urldata);

        $.ajax({
            type : "GET",
            data : urldata,
            url:"save.php",
            cache: false,
            success:function(result2){
                $(".div1").html(result2);
            } // ends success function
        }); // ends ajax call
    });
 </script> <!-- OR --> <script src="yourfile.js"></script>    

或者您应该使用事件委托(这是正确的方法),因此加载代码时无关紧要:

$(document).on('submit', '#save_expenses', function(){
  // will work forever
  var urldata = 'r='+rno+'&d='+desc+'&a='+amt+'&e='+exp_type+'&p='+paymode+'&c='+ch_no+'&save=1';
        //alert(urldata);

        $.ajax({
            type : "GET",
            data : urldata,
            url:"save.php",
            cache: false,
            success:function(result2){
                $(".div1").html(result2);
            } // ends success function
        }); // ends ajax call
});

答案 2 :(得分:0)

非常感谢您的快速回复 我无法在此发布所有代码供您查看..

我想要做的是创建一个动态选择菜单,自动填充存储在数据库表中的选项。这就是为什么我试图使用负载重新加载页面,以便它包含菜单。

第1步image 1

第2步image 2

第3步image 3

我感谢你们的努力。 我很感激