【问题标题】:Javascript hyperlinks don't work with jQuery appendJavascript 超链接不适用于 jQuery 追加
【发布时间】:2013-09-06 13:09:26
【问题描述】:

我需要一些帮助来指明正确的方向。我有一个 jQuery 代码,它在页面加载后通过 $.get 函数提取一些 HTML 内容,将它们放入 $data 变量中,并附加到 div_content 中。

一切正常,除了在原始内容中附加 javascript 链接后不起作用。

代码部分:

$(document.body).ready(function() {
$.get("content1.php", {id:"1234" }, function(data) {

  // for example this is the pulled data 
  var data = '<a href="javascript:;" data-id="someotherpage.php?var1=a&amp;var2=b&amp;var3=c">link</a>'

  $('.div_content').append(data);

});
});

没有javascript的标准标签不受影响,它们工作正常。

我找到了一些这样的建议 - jQuery Appended elements with href and javascript doesn't work - 和这个 - Appending a link with Jquery - 并阅读了 jQuery 的 .on() 函数,但似乎无法解决我添加内容的确切问题。

我有 jQuery 1.10.1,感谢所有输入。

【问题讨论】:

  • 定义“不起作用”。
  • 我猜你需要为附加的链接委托事件。这取决于“不起作用”是什么意思
  • MelanciaUK,Rory:当我点击链接时,没有任何反应。
  • @Nick 会发生什么? href 属性不包含真正的链接或 JS。
  • @Nick 你有附加链接的事件处理程序吗?上面代码中的链接不会做任何事情。

标签: javascript jquery html


【解决方案1】:

如果看不到可能包含哪些数据,很难确切地看到您想要实现的目标,但我可以看到您在收到 ajax 响应后所做的第一件事就是覆盖返回的数据,这显然是不正确的。

也许你的意思是这样的?:

 $.get("content1.php", {id:"1234" }, function(i,data) {
 var link = '<a href="someotherpage.php?var1='+data.var1+'&amp;var2='+data.var2+'">link</a>';
 $('.div_content').append(link);
 });

【讨论】:

  • 拉取的数据是一个文本块,例如包含$data = "Welcome to our hotel, we are located very close to the center.
    欲了解更多信息,点击这里查看我们的联系信息!"然后联系人页面将出现在一个花式框窗口中。如果我只使用 href 链接,那么该链接是标准链接,但我不希望这样。发送变量可以正常工作,因为如果上面的内容/数据只是以 HTML 格式显示,那么链接可以很好地打开 fancybox。
  • @Nick的href无效,试试$('.div_content a).attr('href',$('.div_content a).attr('data-id));
  • 嗯,我应该在哪里使用它?获取数据后,还是追加?
  • @Nick 附加后,由于某种原因我无法编辑最后一条评论,但我在 data-id 和 .div_content 之后错过了一个“'”
  • 试过了,但它给出了一个语法错误: $('.div_content' a).attr('href', $('.div_content' a).attr('data-id')) ;如果我是正确的,是否尝试在加载到 DIV 后重写 href 标记?
【解决方案2】:

感谢您的回复和 cmets,mea culpa,这是我的设计错误。我必须将 jquery 和 fancybox JS 和 CSS 包含到 someotherpage.php(data-id 属性)中,现在它可以工作了。

【讨论】:

    猜你喜欢
    • 2014-11-20
    • 2015-08-19
    • 1970-01-01
    • 1970-01-01
    • 2014-08-11
    • 2018-10-05
    • 1970-01-01
    • 2012-07-24
    相关资源
    最近更新 更多