Javascript 如何在动态加载内容中绑定“单击”链接?
我有一些奇怪的问题。假设我们有一个包含以下代码的HTML页面:Javascript 如何在动态加载内容中绑定“单击”链接?,javascript,php,html,jquery,Javascript,Php,Html,Jquery,我有一些奇怪的问题。假设我们有一个包含以下代码的HTML页面: <div class="description"> <a href='#' class='oldkeenload btn btn-apply' data-subject='1' data-subject2='3'><i class="fa fa-cloud-download" aria-hidden="true"><
<div class="description">
<a href='#' class='oldkeenload btn btn-apply' data-subject='1' data-subject2='3'><i class="fa fa-cloud-download" aria-hidden="true"></i> Загрузить материал</a>
</div>
它只是将响应从服务器加载到“description”div。我这样做是为了避免加载所有材料,让用户在一个特定类别中加载他需要的内容。用户看到材料介绍,按下加载按钮,内容加载
但是,使用此方法加载时,加载内容中的新链接无法加载新内容。当我点击链接时,什么也没发生
你知道如何在JS中不使用服务器端脚本实现吗?jQuery函数接受一个额外的回调。它将在加载完成后运行。在通过.load
更新DOM后,可以再次绑定click
函数
var loadData=函数(){
//控制台日志(“单击”);
var topic=$(this.data('subject');
var kcode=$(this.data('subject2');
var datastring='/app/server.php?oldkeen='+kcode+'&topicid='+topic;
//log(数据字符串);
//var parentTag=$(this.parent().get(0).tagName;
//log(“父标记:“+parentTag”);
var$container=$(this.parent(“.description”);
$container.load(数据字符串,函数(){
$(“.oldkeenload”,$容器)。单击(loadData);
});
返回false;
}
$(“.oldkeenload”)。单击(加载数据);
客户端DOM操作不会更新页面的源代码。使用浏览器的开发工具检查DOM。我知道,这就是问题所在。是否有更新DOM的方法。我想操作的加载内容中有href元素。DOM已更新。否则你就看不到页面本身的变化。好吧,也许我是错的。我想将加载内容中的href click传递给js文件中的另一个函数。但是它不能识别点击和要传递的内容,也不清楚你正在经历什么。单击链接时页面内容是否更新?您在浏览器中尝试过DOM Inspector吗?(正如其他人提到的,不可能使用客户端javascript更改服务器HTML,只更改DOM)
$(".oldkeenload").click(function () {
// console.log("Clicked");
var topic=$(this).data('subject');
var kcode=$(this).data('subject2');
var datastring = '/app/server.php?oldkeen=' + kcode + '&topicid=' + topic;
// console.log(datastring);
// var parentTag = $( this ).parent().get( 0 ).tagName;
// console.log("Parent tag: " + parentTag);
$(this).parent(".description").load(datastring);
return false;
});