我正在尝试在页面上使用colorbox,其中我有三个链接,每个链接都有onclick事件,调用ajax页面,响应文本显示在必要的div中。一切都工作正常,除了彩盒链接。在通过ajax调用内容后,链接无法显示为彩色框。这是我调用colorbox的代码,当页面加载工作时。
<p>
$(document).ready(
function()
{
$(".editchecklist").colorbox({width:"50%", height:"35%", iframe:true, onClosed:function(){ location.reload(true); } });
}
);
我试图寻找这个问题,但一切都与jQuery ajax调用有关,而不是简单的ajax调用。建议使用.live()或重新绑定方法,我不知道如何以及在何处使用它们。 这是我的ajax调用代码:
function getxmlhttp()
{
var xmlHttp = false;
if (window.XMLHttpRequest)
{
// If IE7, Mozilla, Safari, etc: Use native object
var xmlHttp = new XMLHttpRequest();
}else
{
if (window.ActiveXObject)
{
// ...otherwise, use the ActiveX control for IE5.x and IE6
var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
function process_ajax2(phpPage, objID, getOrPost,clickedLink)
{
xmlhttp = getxmlhttp();
var obj = document.getElementById(objID);
if(getOrPost == "get")
{
xmlhttp.open("GET",phpPage);
xmlhttp.onreadystatechange = function()
{
if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
document.getElementById('change_'+clickedLink).innerHTML = xmlhttp.responseText;
}
}
xmlhttp.send(null);
}
}
请告诉我如何解决这个问题?
感谢你。
答案 0 :(得分:2)
如果我正确理解了您的问题,您在页面加载后通过ajax将内容加载到页面中。
你所获得的javascript只适用于页面加载时的数据,所以你需要做的是使用.live(),它将对页面加载和之后加载的元素起作用。
(注意:我不知道你试图在这里调用什么页面 - 所以我假设它在链接href中)
这样的事情应该有效
$(function(){
$(".editchecklist").live('click',function(e){
e.preventDefault();
$.colorbox({
width:"50%",
href:$(this).attr('href'),
height:"35%",
iframe:true,
onClosed:function(){
location.reload(true);
}
});
});
});
更多关于jquery live http://api.jquery.com/live/