Php 无法单击使用ajax-$(文档)的另一页回显的项目。上的不起作用
更新 我有两页。连接到js文件的索引页。这个js文件包含从数据库获取数据的ajax代码。 这是我的js文件Php 无法单击使用ajax-$(文档)的另一页回显的项目。上的不起作用,php,jquery,Php,Jquery,更新 我有两页。连接到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,functio
$(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文件,用于从db获取链接
<?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文件的链接根本不起作用
$(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);
})
对不起,也许这会有帮助,也许不会。但是 你为什么不使用这样的东西: 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);
});
});
什么意思被停职了?它只有1.7+版本,所以你可能是对的,Yasser无法使用它。。。但是suspended让它听起来像是被删除了。哈哈,你说得很对,我完全错过了api.jQuery.com上的内容。这是漫长的一天:-/jQuery 1.7.1,但仍然无法使用。委派,我猜它应该是这样的$document。委派AsubCatLink,单击,函数{正如我在jquery网站上发现的,但是仍然不起作用。你正在创建大量具有相同ID的链接。ID需要是唯一的。现在子菜单ID更改为标题,并且具有与菜单项ID相同的值,不再具有双ID。但是在子菜单中单击链接时,什么都没有发生。我看不到Ajax。图片也不清楚;因此UND就像你在用JS来做Ajax来做一个包含;为什么不在HTML呈现部分从端到端使用PHP呢?最后,看起来你在尝试使用ID子链接作为一个类,尽管从这个简短的代码示例很难说。如果有多个锚点有子链接,那么你就做错了,因为只有一个i每页显示一个ID。我认为您的问题描述中缺少了一些内容:您的小提琴没有像它应该包含的那样包含上面的click event manager。@Greg Pettit说的+1。我的意思是JSFIDLE代码显示了。停止以保持sub_菜单可见,这样您就可以判断问题是否出您已经在使用jQuery…您应该使用$.ajax方法!ajax抽象和事件绑定是使用jQuery而不是动画的两个最好的理由;那么为什么要忽略API的这一部分呢?PS:我在您的“标记ID”上加了一个ID,因为您不应该因为dom不喜欢有两个或更多具有相同ID的元素
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);