无法使用ajax单击其他页面回显的项目 - $(document).on无法正常工作

时间:2012-02-15 15:37:30

标签: php jquery

  
    

更新

  

我有2页。连接到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
    });

这是用于从db

获取链接的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文件的链接根本不起作用

2 个答案:

答案 0 :(得分:1)

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

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

的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);

答案 1 :(得分:-1)

好吧试试这个

$(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); 
})