JQuery load()函数禁用链接和:悬停效果?

时间:2012-09-14 15:55:16

标签: css jquery

我正在尝试使用jQuery load()函数将来自不同文件的内容加载到当前文件中的div元素中。没什么好看的,只是加载它就是这样。但是,加载文件中包含的链接将被“禁用”,您无法单击它们,并且伪类如:hover似乎也被忽略了。有解决方案吗?

$(document).ready(function() {
    $("div.content").load("content.html");
});

让我们说content.html只包含这一行:

<a href="somelink.html">xxx</a>

当它加载到<div class="content">时,链接无法点击。它根据css着色,但是:悬停效果不起作用,它的行为与普通文本一样 - 不是链接。这是一个问题,因为我正在尝试加载的内容有几个链接,并且在加载()之后它们都不起作用。

1 个答案:

答案 0 :(得分:0)

我相信你的问题是:

  • 您使用$('div.content')。load('content.html')发送内容请求(稍后)插入DOM。
  • 然后运行一些代码来使用$(document).click,$(document).bind等指定节点的处理程序 - 但是这个代码在将新节点添加到DOM之前运行。
  • 然后在.load调用完成时添加新节点。
  • 节点上未遵循您在所有原始节点上定义的行为。

如果这是您要描述的问题 - 那么您需要在创建新节点后将所有相同的绑定添加到新节点。

即。您需要提供回调以将绑定添加到新元素:

function on_data_loaded() {
    $('div.content ...').hover(.....);
    // etc.
}
$('div.content').load('content.html', null, onloaded);

(请注意,这不是一种特别干净的方式,但它应该解释需要做什么)。