2012-03-22 209 views
0

我有一個鏈接:不允許刷新網頁

<a href="#" onClick="javascript:isRename();" class="current-text">rename</a> 

其調用isRename()函數:

function isRename(){  
var i = getCheckboxCount(); 
if(i==1){ 
    showInputDialog(getCheckboxName(),'Rename', 'Enter the name of file/directory',null); 
} 
} 

function showInputDialog(a,b,c,okFunc){ 
$.fn.InitInputDialog(a,b,c,okFunc); 
$.fn.fadeInCommon(); 
}; 

它顯示了一個模態窗口。該窗口有一個關閉按鈕。

$("#CloseInputButton").off('click'); //MY CLOSE BUTTON IN MODAL WINDOW  
    $("#CloseInputButton").click(function(){ 
     fadeOutCommon();    
    }); 

$.fn.fadeOutCommon = function(){   
    //transition effect 
    $('#mask').fadeTo("slow",0.0,function(){ 
     $(dialogID).hide();  
     $('#mask, .window').hide(); 
    });  

};
它在我按下關閉按鈕之前工作正常。我的網頁刷新和fadeOutCommon動畫根本不起作用!我想這是因爲刷新網頁!我如何禁用刷新網頁? 感謝

+1

你可能不會需要「禁用刷新」,作爲一個旁註:上禁用刷新用戶的瀏覽器是我認爲令人反感和令人沮喪的事情......要麼改變你的UI設計,要麼處理它。 – 2012-03-22 06:04:19

+0

'onClick =「javascript:isRename();」'< - 你用href語法混合句柄語法。 'javascript:'不應該在那裏。 – SpliFF 2012-03-22 06:12:00

回答

3

只要寫下來return false;會做這項工作。

<a href="#" onClick="javascript:return isRename();" class="current-text">rename</a> 

    function isRename(){  
    var i = getCheckboxCount(); 
    if(i==1){   
     showInputDialog(getCheckboxName(),'Rename', 'Enter the name of file/directory',null); }  
    return false; 
    } 

也有看看

e.preventDefault()將防止發生的歷史默認情況下,e.stopPropagation()將防止冒泡的事件,並返回false將兩者都做。

+0

我放置了「返回false」;到我可以到的地方,但結果是一樣的 - 它不工作! – Nolesh 2012-03-22 11:09:18

+0

@Ares - 嘗試e.preventDefault()可能適合你 – 2012-03-22 11:22:58

+0

好的。我明天會試一試,讓你知道!謝謝。 – Nolesh 2012-03-22 12:44:26

1

你可以把return false在點擊方法

$("#CloseInputButton").click(function(){ 
    fadeOutCommon(); 
return false;   
}); 
0

爲了防止重裝,可以使用

window.onbeforeunload = function() { 'some function that does not reload the page' }