2013-04-25 2 views
0

Я использую плагин JQuery BlockUI:BlockUI свитки к началу

function block(msg) { 
    $.blockUI({ 
     message: msg, 
     css: { 
      border: 'none', 
      padding: '15px', 
      backgroundColor: '#000', 
      '-webkit-border-radius': '10px', 
      '-moz-border-radius': '10px', 
      opacity: .8, 
      color: '#fff' 
     } 
    }); 
} 

function unblock() { 
    $.unblockUI(); 
} 

Проблема я столкнулся это, как только я это называю, она прокручивается мою страницу на вершину. Это не хорошо.

Вот сгенерированный HTML:

enter image description here

Что я мог изменить так, чтобы он не касался pageoffset/скроллинг? Могу ли я что-нибудь сделать, чтобы сохранить его или что-то еще?

Благодаря

называют здесь:

function callBump(realid) { 

    block('Bumping...'); 

    $.ajax({ 
     type: "POST", 
     url: "CalendarServices.aspx/Bump", 
     data: 'id=' + realid, 
     success: function (data) { 
      $('#calendar').fullCalendar('refetchEvents'); 
      unblock(); 
     } 
, 
     error: function() { 
      unblock(); 
     } 
    }); 
} 
+0

Как вы «призывающий» его? (Я не вижу ваш скриншот, imgur заблокирован для меня.) –

+0

Я добавил звонок. – jmasterx

+0

Блок влияет на свиток, хотя ... он сразу же затрагивается. – jmasterx

ответ

1

Я предполагаю, что переход к вершине вызвано иметь что-то вроде этого:

<a href="#" id="do_bump">Bump!</a> 

Независимо нажмите событие, которое вы связали к этой ссылке выполняется, но затем она продолжает пытаться перейти к «#», которая вызывает скачок.

Его можно зафиксировать, зафиксировав параметр события (добавьте e к вашему обработчику событий кликов) и позвонив на него preventDefault(). Это предотвратит появление по умолчанию поведения кликов по ссылкам, которое должно перейти к значению атрибута href.

Учитывая ваши комментарии, вы должны это:

$(btnBump).off('click'); 
$(btnBump).on('click', function() { 
    callBump(event.realid); 
}); 

Где event приходит? Это window.event? Если предположить, что JQuery может искажать ваше мероприятие, попробуйте это (вы просто должны добавить параметр события e):

$(btnBump).on('click', function(e) { 
    callBump(event.realid); 
    e.preventDefault(); 
}); 
Смежные вопросы