ajax加载事件中的jquery块UI故障
问题:在此代码上调用块UI时触发错误ajax加载事件中的jquery块UI故障,jquery,ajax,jquery-blockui,Jquery,Ajax,Jquery Blockui,问题:在此代码上调用块UI时触发错误 (function($){ function preloader() { $('a#preloader').click(function(e){ e.preventDefault(); var url = base_url + 'runtest/preloader'; $('div#content').load(url, preloaderCallback)
(function($){
function preloader()
{
$('a#preloader').click(function(e){
e.preventDefault();
var url = base_url + 'runtest/preloader';
$('div#content').load(url, preloaderCallback);
});
}
function remotePreload()
{
$('a#remotepreload').click(function(e){
e.preventDefault();
var object = $(this);
object.data('clicked', 'yes');
var url = base_url + 'runtest/remote_preloader';
$('div#content').load(url);
});
}
/*
* callback functions
*/
function preloaderCallback()
{
$('div.imageholder img').hide();
$('div.imageholder img').each(function(){
var img = new Image();
var sursa = $(this).attr('src');
var parent = $(this).parent();
var preloaderSource = '<img src="' + base_url + 'media/images/preloader.gif' + '" alt="loader"/>';
parent.append(preloaderSource);
$(img).load(function(){
parent.append($(this));
$(this).hide().fadeIn(500);
$(this).siblings().remove();
}).attr('src', sursa);
});
}
function blocker()
{
$('#content').block();
}
function handlePageLoad()
{
$('a#remotepreload').ajaxStart(function(e){
var elem = $(e.target);
if (elem.data('clicked') == 'yes')
{
// error when blocker() function is called here
alert('Started');
}
});
$('a#remotepreload').ajaxComplete(function(e){
var elem = $(e.target);
if (elem.data('clicked') == 'yes')
{
elem.removeData('clicked');
alert('Ended');
}
});
}
// call onready functions
$(function(){
preloader(); remotePreload();handlePageLoad();
});
})(jQuery);
(函数($){
函数预加载程序()
{
$('a#预加载程序')。单击(函数(e){
e、 预防默认值();
var url=base_url+“运行测试/预加载程序”;
$('div#content').load(url,preforercallback);
});
}
函数remotePreload()
{
$('a#remotepreload')。单击(函数(e){
e、 预防默认值();
var object=$(这个);
object.data('clicked','yes');
var url=base_url+“运行测试/远程_预加载程序”;
$('div#content').load(url);
});
}
/*
*回调函数
*/
函数preforercallback()
{
$('div.imageholder img').hide();
$('div.imageholder img')。每个(函数(){
var img=新图像();
var sursa=$(this.attr('src');
var parent=$(this.parent();
var PreforerSource='';
parent.append(preforersource);
$(img).加载(函数(){
parent.append($(this));
$(this.hide().fadeIn(500);
$(this.sides().remove();
}).attr('src',sursa);
});
}
函数拦截器()
{
$('#content').block();
}
函数handlePageLoad()
{
$('a#remotepreload').ajaxStart(函数(e){
var elem=$(e.target);
如果(元素数据('clicked')=='yes')
{
//在此处调用blocker()函数时出错
警报(“启动”);
}
});
$('a#remotepreload').ajaxComplete(函数(e){
var elem=$(e.target);
如果(元素数据('clicked')=='yes')
{
删除元素(“单击”);
警报(“结束”);
}
});
}
//调用就绪函数
$(函数(){
预加载程序();远程预加载();handlePageLoad();
});
})(jQuery);
//以下是来自firefox调试器的错误
未捕获异常:[异常…”无法转换JavaScript参数arg 0“nsresult:“0x8057009(NS_错误\u XPC\u错误\u转换_JS)”位置:“JS帧:::匿名::行115”数据:否]
这是html标记
<div id="wrap">
<div id="header">
<?= $header ?>
</div>
<div id="content">
<?= $content ?>
</div>
<div id="sidebar">
<?= $sidebar ?>
</div>
<div id="footer">
<?= $footer ?>
</div>
</div>
编辑
发生这种情况时,我正在使用jQuery1.4.1。切换回1.3,一切恢复正常。blockUI在上更新,不幸的是,作者没有在主页上的任何地方宣布这一事实。我可以确认它与jQuery 1.4完美配合。尝试将“object”的变量名更改为类似于obj的名称(object可能是保留工作,非常肯定是这样)查看编辑,可能是版本问题,当blockUI插件与1.4.1中的更改发生冲突时,这个答案并不是针对问题,而是解决了问题。谢谢