我正在使用jQuery粗框在模式对话框中显示aspx页面
这在我的页面上很好用。在我的页面上,我有一些链接,当我单击时,使用jQuery的Load方法,我从服务器页面获取一些数据并将其加载到其中。(正在获取的数据是一个网格,其中包含我的问题是,我的thickbox在页面中进行硬编码时,我的thickbox工作正常,但是当我从服务器获取它并加载到div时,它却无法工作,而是在模式对话框中显示新页面,重定向浏览器以加载该页面。
我在第一页中对此行进行了硬编码
<a class='thickbox' href='../Home/CostMetrics.aspx?Model=6&KeepThis=true&TB_iframe=true&height=300&width=850'>modal thick box link</a>
当我将数据从服务器加载到div时,我正在从服务器生成此数据段
模式厚框链接
两者都一样,但是我的灯箱不起作用,有什么办法解决这个问题吗?
我在第一页中包含了thickbox CSS和js。填充div的服务器页面是这样的返回数据
<div><div><img src='abc.jpg' /> <a class="thickbox" href="../Home/CostMetrics.aspx?Model=5&KeepThis=true&TB_iframe=true&height=300&width=850">modal thick box link</a></div></div>
提前致谢
最佳答案
我有一个类似的问题-thickbox在页面中加载的数据上运行良好-但当您在页面加载后(使用jQuery Ajax命令)返回动态内容时-该新数据中包含的链接无法打开thickbox ...
我的解决方案:
Thickbox会在thinbox.js文件中调用“ tb_init”函数-该文件仅在页面加载时执行一次。您需要再次调用“ tb_init”函数,在执行新动态服务器内容的jQuery函数中!
通过以下三行调用“ tb_init”(您可以在“ thickbox.js”文件的顶部找到这些行):
tb_init('a.thickbox, area.thickbox, input.thickbox, button.thickbox');//pass where to apply thickbox
imgLoader = new Image();// preload image
imgLoader.src = tb_pathToImage;
举个例子-这是一个代码片段,展示了如何让thickbox处理使用jQuery Ajax命令动态生成的内容(我认为这类似于您使用的jQuery的'Load'方法!?)...
$.ajax({
method: 'get',url: '<?php echo $url;?>incl_ajax_prices.php',data: 'h=<?php echo $Hid;?>',
beforeSend: function(){$('#PriceLoad').show('fast');}, //show loading just when link is clicked
complete: function(){ $('#PriceLoad').hide('fast');}, //stop showing loading when the process is complete
success: function(html){ //so, if data is retrieved, store it in html
$('#Prices').show('slow'); //animation
$('#Prices').html(html); //show the html inside .content div
// ThickBox - this allows any dynamically created links that use thickbox to work!
tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
imgLoader = new Image();// preload image
imgLoader.src = tb_pathToImage;
}
}); //close ajax
这就是我的方法(对jQuery来说是新手),它可能不是最佳解决方案,但是反复试验使我采用了这种方法!
希望有帮助吗?
关于jquery - 当数据来自服务器端时,ThickBox无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/959626/