jQuery、php和Ajax问题:Can';不要使动态链接加载动态内容
有一个很好的例子,它让我使用jQuery、PHP和Ajax浏览了一个简单的搜索/结果列表 我能让它工作,它真的很酷 一个问题。我希望结果是超链接,但我无法在结果上运行任何java脚本 以下是我的脚本(包括教程中的内容,以及覆盖超链接所需的附加脚本,单击行为):jQuery、php和Ajax问题:Can';不要使动态链接加载动态内容,php,jquery,ajax,Php,Jquery,Ajax,有一个很好的例子,它让我使用jQuery、PHP和Ajax浏览了一个简单的搜索/结果列表 我能让它工作,它真的很酷 一个问题。我希望结果是超链接,但我无法在结果上运行任何java脚本 以下是我的脚本(包括教程中的内容,以及覆盖超链接所需的附加脚本,单击行为): $(文档).ready(函数(){ $(“#搜索结果”).slideUp(); $(“#搜索按钮”)。单击(功能(e){ e、 预防默认值(); ajax_search(); }); $(“#搜索词”).keyup(函数(e){ e、
$(文档).ready(函数(){
$(“#搜索结果”).slideUp();
$(“#搜索按钮”)。单击(功能(e){
e、 预防默认值();
ajax_search();
});
$(“#搜索词”).keyup(函数(e){
e、 预防默认值();
ajax_search();
});
$(“a”)。单击(单击拦截器);
});
函数ajax_search(){
$(“#搜索结果”).show();
var search_val=$(“#search_term”).val();
$.post(“./find.php”,{search\u term:search\u val},函数(数据){
如果(数据长度>0){
$(“#搜索结果”).html(数据);
}
})
}
函数ClickInterceptor(e)
{
窗口。警报(“Hellow World!”);
返回false;
}
如果我将以下html放在
标记下:
<a href="test">this will work</a>
这将显示警报窗口
但是,如果我将结果更改为超链接(在教程的清单7中的find.php中找到):
$string.=“-”;
它不起作用
您知道如何解决此问题吗?运行
单击函数时会绑定。你需要把它改成一个
或者,在更新搜索结果时,您可以将以下内容放在$(“#search_results”).html(数据)
之后进行绑定:
问题其实很简单,$(“a”)。单击(ClickInterceptor)代码>将只查找DOM中当前存在的项。您只需将该行更改为:
$("a").live("click", ClickInterceptor);
我还建议你花点时间多读一读。显然,我没有足够的声望去投票。但换成实时绑定就成功了。我相信其他人也会的。太好了!
$string .= "<a href=\"test\">".$row->name."</a> - ";
$("a").live("click", ClickInterceptor);
$("#search_results a").click(ClickInterceptor);
$("a").live("click", ClickInterceptor);