我有一个通过jQuery加载内容的网站。加载facebox所需的所有javascript和css文件时。我在初始页面上放了一个链接,它运行正常。但是,当更改一个元素的“innerHTML”时,相同的链接不起作用。
我甚至试过把javascript和amp; innerHTML中的css文件仍然不起作用!它会加载为新页面。
请帮忙! 感谢
修改1:
的index.php
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.1.min.js"></script>
<script type="text/javascript" src="http://justtwobros.com/actions.js"></script>
<link href="src/facebox.css" media="screen" rel="stylesheet" type="text/css" />
<script src="lib/jquery.js" type="text/javascript"></script>
<script src="src/facebox.js" type="text/javascript"></script>
<script type="text/javascript">
jQuery(document).ready(function($) {
$('a[rel*=facebox]').facebox({
loadingImage : 'src/loading.gif',
closeImage : 'src/closelabel.png'
})
})
</script>
<a href="file.html" rel="facebox">text</a> (this link is the one that works)
<script>
showAllWorkOnLoad();
</script>
actions.js
function showAllWorkOnLoad() {
var thePostData = "filter=allwork";
$.ajax({
type: "POST",
url: "http://justtwobros.com/get_work.php",
data: thePostData,
success: function(theRetrievedData) {
document.getElementById('content').innerHTML = theRetrievedData;
$("#content").fadeIn(20);
focusButtonAllWork();
var count = 0;
$("#content").find('.work_thumbnail_wrapper').each(function() {
count++;
var timeWait = (count * 100) + 500;
var theId = $(this).attr('id');
var theIdDone = "#" + theId;
setTimeout(function(){$(theIdDone).fadeIn(300);},timeWait);
});
}
});
}
get_work.php
<a href="file.html" rel="facebox">text</a> (this link that doesn't work)
答案 0 :(得分:3)
它不起作用,因为该链接没有附加侦听器。您可以通过在ajax调用后添加此代码来确认这是您的问题(成功后,将链接插入到文档中)。
$('a[rel*=facebox]').facebox({
loadingImage : 'src/loading.gif',
closeImage : 'src/closelabel.png'
})