2012-01-10 81 views
0

我有一個div,我正在檢查$(document).ready(function())的條件,然後決定是否顯示它。調用jquery函數後重新加載頁面

div內有一個淡出整個div的按鈕。問題是在調用fadeout()函數後,$(document).ready(function())再次被調用(即頁面被重新加載)並且它再次滿足顯示div的條件。

我想在調用fadeout()函數後阻止頁面重新加載。

HTML

<div class="success"><%: ViewData["successResult"] %> 
<br /><br /> 
<span id="closenotification" class="buttons" onclick="fadeoutbox()"><a href="" ><img src="<%= Url.Content("~/Content/Images/door_out.png") %>" alt="" />Close</a></span> 
</div> 

的JavaScript

function fadeoutbox() { 
    $(".success").fadeOut(5000, function() { 
     /*$(".success").css("display", "none"); 
    $("#closenotification").css("display", "none");*/ 
    }); 

} 

$(function() { 
    var successres = '<%= ViewData["successResult"] %>'; 
    //alert(successres != null); 
    if (successres != "") { 
     var leftpos = screen.width/2 - 350; 
     var toppos = screen.height/2 - 125; 
     $(".success").css("left", leftpos); 
     $(".success").css("top", toppos); 
     $(".success").css("display", "block"); 
     $("#closenotification").css("display", "block"); 
    } 

    if ($(".failure").html() != "") { 
     var leftpos = screen.width/2 - 350; 
     var toppos = screen.height/2 - 125; 
     $(".failure").css("left", leftpos); 
     $(".failure").css("top", toppos); 
     $(".failure").css("display", "block"); 


    } 
}); 
+1

我想你的意思它重新加載,如果你點擊鏈接...使這個: some link firing but not reloading pages ggzone 2012-01-10 10:20:48

+0

謝謝@ggzone。有效 ! – 2012-01-10 11:30:35

+0

標記也是一個答案確認和嘗試自己也preventDefault()... theres一個區別,但工作就像你想要 – ggzone 2012-01-10 11:43:07

回答

0

嘗試移動onclick事件進入鏈接元素(嵌套到span),並改變你的功能,像這樣

function fadeoutbox(evt) { 
    evt.preventDefault(); 
    $(".success").fadeOut(5000, function() { 
     ... 
    }); 
} 
1

你已將圖片封裝在a標記中。您需要使用preventDefault來防止頁面在a標記的點擊事件中重新加載。或者完全刪除a標籤。

+0

不,我不能刪除標籤,因爲我有一些CSS綁定到它。 ggzone的解決方案起作用 – 2012-01-10 11:31:10

0

取出onclick="fadeoutbox()"部分並添加此處理程序:

$('#closenotification').click(function(e) { 
    e.preventDefault(); 
    fadeoutbox(); 
}); 
0

試試這個:

$(函數(){

var successres = '<%= ViewData["successResult"] %>'; 
//alert(successres != null); 
if (successres != "") { 
    var leftpos = screen.width/2 - 350; 
    var toppos = screen.height/2 - 125; 
    $(".success").css("left", leftpos); 
    $(".success").css("top", toppos); 
    $(".success").css("display", "block"); 
    $("#closenotification").css("display", "block"); 

    return; 
} 

if ($(".failure").html() != "") { 
    var leftpos = screen.width/2 - 350; 
    var toppos = screen.height/2 - 125; 
    $(".failure").css("left", leftpos); 
    $(".failure").css("top", toppos); 
    $(".failure").css("display", "block"); 

    return; 
} 

});

+0

如果條件滿足,在兩者結束之前添加一條return語句。 – 2012-01-10 10:31:56

0

,你可以做下列操作之一:

  1. #用於在​​
  2. 使用結束HREF
  3. 返回假e.preventDefault()像其他人說:
+0

也'e.preventDefault()'就像'return false' – MDP 2012-01-10 11:07:48

相關問題