2012-01-10 3 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

+0

спасибо @ggzone. Это сработало ! –

+0

отметьте также ответ как подтвержденный и попробуйте сами также preventDefault() ... theres разница, но оба работают так, как вы хотите – ggzone

ответ

0

Попытка переместить onclick событие в элементе связи (вложен в span) и изменить свою функцию, как так

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

Вы 'обернул изображение в теге a. Вам нужно будет использовать preventDefault, чтобы предотвратить перезагрузку страницы при событии click тега a. или полностью удалить тег a.

+0

Нет. Я не могу удалить тег, потому что у меня был привязан к нему CSS. Решение ggzone работает –

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

добавьте оператор возврата до конца обоих условий if. –

0

вы можете сделать одно из них:

  1. Положите # для HREF
  2. возвращения ложного в конце использования в fadeoutbox
  3. e.preventDefault(), как и другие ребята сказал
+0

также 'e.preventDefault()' что-то вроде 'return false' – MDP

Смежные вопросы