尝试添加Onclick到链接,但不能使用.onclick

时间:2014-06-01 21:02:27

标签: javascript jquery html ajax

所以我尝试使用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。只是认为这是相关的。

2 个答案:

答案 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");}
....

简单演示http://jsbin.com/culoviro/1/edit