无法使用ajax-$(document)点击其他页面所响应的项目.on不起作用


cannot click items echoed by another page using ajax - $(document).on is not working

更新的

我有两页纸。连接到js文件的索引页。这个js文件包含从数据库获取数据的ajax代码。这是我的js文件

$(document).ready(function() {
    // getting links from db andshow sub_menu div //
    $(".menu_item").mouseover(function(){
        $(this).addClass("selected").children().slideDown(500,function(){
            var id = $(".selected").attr("id");
            var ajax= false;
            ajax = new XMLHttpRequest();
            var qst = "?id="+id;
            ajax.open("GET","ajax/get_sub_cats.php"+qst);
            ajax.onreadystatechange = function(){
                if(ajax.readyState == 4 && ajax.status == 200){
                    $(".sub_menu[title="+id+"]").html(ajax.responseText);
                }
            }
            ajax.send(null);
        });
    });
    // hiding sub_menu div //
    $(".menu_item").mouseout(function(){
        $(this).removeClass("selected").children(".sub_menu").slideUp(500);
    });
    // keeping sub_menu div visible on mouse over //
    $(".sub_menu").mouseover(function() {
        $(this).stop();
    });
    // clicking sub menu link in the menu //
    $(document).delegate("a#subCatLink","click",function(){
    alert("test");
    }); 
    // document ready end
    });

这是用于从数据库获取链接的get_sub_cats php文件

<?php
require('../_req/base.php');
$id = $_REQUEST['id'];
$getSubcatsQ = "select * from sub_cats where Main_Cat_ID = '$id'";
$getSubcatsR = mysql_query($getSubcatsQ);
$numrows = mysql_num_rows($getSubcatsR);
while($row = mysql_fetch_array($getSubcatsR)){
    ?>
   <a id="subCatLink" href="products.php?id=<?php echo $row['Sub_Cat_ID']; ?>"><?php echo $row['Sub_Cat_Name']; ?></a><br />
    <?php
}
mysql_close($connect);
?>

使用ajax点击来自其他php文件的链接根本不起作用

对不起,也许这会有所帮助,也许不会。但是

你为什么不使用这样的东西:

jQuery

$(".menu_item").mouseover(function(){   
    var id = $(".selected").attr("id");
    var qst = "?id="+id;
    var html = '';
    $.getJSON('ajax/get_sub_cats.php'+qst, function(data){
        var len = data.length;
        for (var i = 0; i< len; i++) {
            html += '<a id="subCatLink'+data[i].Sub_Cat_ID+'" href="products.php?id='+data[i].Sub_Cat_ID+'">'+data[i].Sub_Cat_Name+'</a>';
        }
        $(".sub_menu[id="+id+"]").html(html);
    });
});

PHP

require('../_req/base.php');
$return = array();
$id = $_REQUEST['id'];
$sql = "select * from sub_cats where Main_Cat_ID = '$id'";
$result = mysql_query($sql);
while($ln = mysql_fetch_array($result)){
    $return[] = $ln;
}
echo json_encode($return);

好的,试试这个

$(document).delegate("click","a",function(){ 
    var target = $(this).attr("href"); 
    alert(target); 
});

作为测试,这应该显示页面上每个链接的href。如果有效的话,把你想显示的所有链接都放在一个div中。然后用调用它

$('#divID').delegate("click","a",function(){
    var target = $(this).attr("href"); 
    alert(target); 
})