所以我尝试使用ajax将内容放入div中,并尝试让它在添加内容之前更改所有内部链接,以便他们使用funciton并使用ajax加载而不是导航到另一个页。我的函数应该用ajax获取数据,更改链接的href和onclick属性,然后将它放入div ...但是,它所做的只是更改href而不是添加onclick属性at所有。这是我到目前为止所使用的内容:
function loadHTML(url, destination) {
$.get(url, function(data){
html = $(data);
$('a', html).each(function(){
if ( $.isUrlInternal( this.href )){
this.onclick = loadHTML(this.href,"forum_frame"); // I've tried using both a string and just putting the function here, neither seem to work.
this.href = "javascript:void(0)";
}
});
$(destination).html(html);
});
};
另外,我使用的是jquery-urlinternal。只是认为这是相关的。
答案 0 :(得分:0)
通过提前在目标元素上执行此操作,您可以轻松获得所需的效果:
$(destination).on("click", "A", function(e) {
if ($.isUrlInternal(this.href)) {
e.preventDefault();
loadHTML(this.href, "forum_frame");
}
});
现在,<a>
容器内的所有destination
都将自动处理,甚至将来通过DOM操作添加内容。
答案 1 :(得分:0)
通过js将函数设置为onclick
时,它不会在标记上显示为属性。但是在这种情况下,它无法正常工作,因为未正确设置该功能。简单的方法使其工作,
....
var theHref=this.href;
this.onclick = function(){loadHTML(theHref,"forum_frame");}
....