仅使用一个js文件进行多个php ajax调用

时间:2016-02-03 12:00:57

标签: javascript php jquery ajax

首先,我的目的是拥有1个js文件,其中有多个ajax调用。我希望这些ajax调用,即php文件,在其中包含相同的js文件,但不执行其他请求,这使得它在任何单击后运行缓慢。

我的一些主要php文件:

direcinfo.js

Js文件($('#c_menu_direcciones').click(function(){ $.ajax({ dataType: "html", type: "POST", url: "direcalias.php", success: function(cntnt){ $("#expand_wrapper_dir").html(cntnt); } }); return false; }); $(".alias-dir-a").click(function(){ var useremail=$("#useremail").val(); var alias=$(this).html(); if(alias==="+") { $.ajax({ dataType: "html", type: "POST", url: "direcnew.php", data: "email="+useremail, success: function(cntnt){ $("#direc-content").html(cntnt); } }); return false; } }); ):

direcalias.php

Ajax加载文件(<?php session_start(); header("Content-Type: text/html; charset=ISO-8859-1"); include_once 'connection.php'; $conn = bbddconnect(); $email=$_SESSION['useremail']; $query = "SELECT CODIDIR,ALIAS" . " FROM CLIENTE C,DIRECCION D" . " WHERE EMAIL LIKE '$email' AND C.CODICNT = D.CODICNT;"; $result3 = mysqli_query($conn,$query)or die(mysqli_error()); $recount = mysqli_num_rows($result3); echo '<div class="menu-alias madir">'; for($i=0;$i<$recount;$i++) { $row = mysqli_fetch_array($result3); echo '<div class="alias adir ali-'.$i.'"> <a href="javascript:void(0)" class="alias-dir-a">'.$row['ALIAS'].'</a> </div>'; } echo '<div class="alias adir ali-nuevo"> <a href="javascript:void(0)" class="alias-dir-a">+</a> </div> </div> <div id="direc-content"></div>'; //echo '<script>'. // 'var url = "'.$_SESSION['url'].'js/direcinfo.js";'. // '$.getScript(url);'. // '</script>'; ?>

direcalias.php

我遇到的问题是,当$(".alias-dir-a").click(function())文件被调用时,我需要再次调用js文件(编辑部分),因为如果我不这样做,它就无法识别我何时点击{{ 1}}。我想做什么?

1 个答案:

答案 0 :(得分:1)

在创建之前,请致电.alias-dir-a。您可以使用on方法

$(document).on("click", ".alias-dir-a", function() {

    var useremail=$("#useremail").val();
    var alias=$(this).html();
    if(alias==="+")
    {
        $.ajax({
            dataType: "html",
            type: "POST",
            url: "direcnew.php",
            data: "email="+useremail,
            success: function(cntnt){
                $("#direc-content").html(cntnt);
            }
        });
        return false;
    }
});