好吧,我面临着非常奇怪的问题,请参见以下场景。
当页面加载时,它会显示一个图像,并且在页面加载事件中会发生以下事情......
$(function () {
LoadCrop();
});
var i = true;
function LoadCrop() {
debugger;
if(i == true)
{
i=false;
}
else
{
i=true;
}
$('#<%=imgCrop.ClientID %>').resizable({
stop: function (event, ui) {
panelwidth = ui.size.width;
panelheight = ui.size.height;
//updateresize(QueryString.idflyer, this.id, panelwidth, panelheight);
$("#<%=hndResizeWidth.ClientID %>").val(panelwidth);
$("#<%=hndResizeHeight.ClientID %>").val(panelheight);
}
});
sleep(1);
var initialH = jQuery('#<%=hndInitialHeight.ClientID %>').val();
var initialW = jQuery('#<%=hndInitialWidth.ClientID %>').val();
if (initialH != '' || initialW != '') {
jQuery('#<%=imgCrop.ClientID %>').Jcrop({
onSelect: storeCoords,
setSelect: [ 10, 10, Number(initialW) + 10, Number(initialH) + 10 ],
});
}
else {
jQuery('#<%=imgCrop.ClientID %>').Jcrop({
onSelect: storeCoords
});
}
}
正如所见,这段代码工作正常,但是当我做其他过程链接旋转图像或裁剪图像时,图像突然不可见。
所以,为了检查我正在尝试的问题,突然注意到如果我放了 2 个警报框,那么一切都很好。请参阅以下代码,我刚刚添加了 2 个警报框。
function LoadCrop() {
debugger;
if(i == true)
{
alert('1');
sleep(1000);
i=false;
}
else
{
alert('2');
sleep(1000);
i=true;
}
$('#<%=imgCrop.ClientID %>').resizable({
stop: function (event, ui) {
panelwidth = ui.size.width;
panelheight = ui.size.height;
//updateresize(QueryString.idflyer, this.id, panelwidth, panelheight);
$("#<%=hndResizeWidth.ClientID %>").val(panelwidth);
$("#<%=hndResizeHeight.ClientID %>").val(panelheight);
}
});
sleep(1);
var initialH = jQuery('#<%=hndInitialHeight.ClientID %>').val();
var initialW = jQuery('#<%=hndInitialWidth.ClientID %>').val();
if (initialH != '' || initialW != '') {
jQuery('#<%=imgCrop.ClientID %>').Jcrop({
onSelect: storeCoords,
setSelect: [ 10, 10, Number(initialW) + 10, Number(initialH) + 10 ],
});
}
else {
jQuery('#<%=imgCrop.ClientID %>').Jcrop({
onSelect: storeCoords
});
}
}
很难找到确切的问题和解决方案...... :(
编辑#1
我还注意到,如果我删除以下代码块,它就会解决问题。
$('#<%=imgCrop.ClientID %>').resizable({
stop: function (event, ui) {
panelwidth = ui.size.width;
panelheight = ui.size.height;
//updateresize(QueryString.idflyer, this.id, panelwidth, panelheight);
$("#<%=hndResizeWidth.ClientID %>").val(panelwidth);
$("#<%=hndResizeHeight.ClientID %>").val(panelheight);
}
});
另一件事是,所有控件都在用户控件中,并且该控件位于 .ASPX 页面的更新面板中,因此,如果我将其从更新面板中删除,也可以解决问题...
可能是 ajax 让它延迟延迟.... :(