1

好吧,我面临着非常奇怪的问题,请参见以下场景。

当页面加载时,它会显示一个图像,并且在页面加载事件中会发生以下事情......

$(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 让它延迟延迟.... :(

4

0 回答 0