2010-01-11 33 views
0

您好我有我的頁面拖放功能嵌入使用YAHOO.js在頁面加載initalized。當init函數中放入'alert'時,拖放操作不起作用。否則使用Firebug我已經調試了代碼,並且在調用init函數時看到,但是沒有放置警報時沒有通過函數循環。 按下ALT鍵後,此功能應起作用。我在JavaScript上使用velocity模板引擎。 示例代碼:Javascript行爲怪異,只打開一個拖放/拖動項目'警報'被放

<script type="text/javascript" language="JavaScript"> 


var myLogger; 
    var dd1, ddTrashCan; // draggable div objs 

    #if ($displayOptions.isDoDragDropJavaScript()) 
     YAHOO.util.Event.addListener(window, "load", DD_TestInit);  
    #end 

    function display(data) { 
    var output = "<div>" + data.text + "</div>"; 
    element.innerHTML=output; 
} 
    function DD_TestInit() { 
    #if ($showLoggerDiv) 
     initLogger(); 
    #end 

// display(「date」); initDragObjects();

} 

    function logMsg(strMsg) { 
    if (myLogger) 
     myLogger.debug(strMsg); 
    } 

    function initDragObjects() { 

    //alert('---'); 

    if (dd1) dd1.unreg(); 
    if (ddTrashCan) ddTrashCan.unreg(); 

    YAHOO.util.DDM.mode = YAHOO.util.DDM.POINT; 
    YAHOO.util.DDM.clickTimeThresh = 10; 

    ## init constant drag objects, draggable div and droppable trash, resp. 
    dd1 = new lineSched_Draggable("dragDiv1"); 
    ddTrashCan = new lineSched_Droppable("TrashCan"); 
    } 

我發現的是當我把警報或調用任何window.open()這工作正常。 任何線索這裏發生了什麼。 謝謝

回答

0

有計時器事件是延遲process.My的感覺是,這是一個計時問題。裝載時頁面不完整。警報會減慢進程速度,在用戶點擊警報上的「確定」時,頁面基本就位。顯然,我們無法通過警報部署應用程序。但是,我們可以查看不同的地方進行初始化。當頁面收到最後一張表格時,我們可以嘗試將它放在我添加時間的相同位置。此時頁面應該完全形成,並且該功能應該正常工作。