2013-11-16 6 views
0

У меня есть jQuery модальный popping после того, как пользователь нажимает на значок в списке. Список может быть огромным, поэтому пользователь должен прокрутить вниз, чтобы увидеть полный список. Когда я нажимаю на значок, модальные выступы посередине этого экрана, а затем мой браузер прокручивается вверх до страницы.Автоматический прокрутка вверх после ввода jQuery modal

Как я могу предотвратить прокрутку браузера?

HTML

<div class="lista"> 
    <table class="table3"> 
     <tbody> 
      <?php 
      foreach ($predmeti as $obj){ 
      ?> 
      <tr> 
       <td><a href="#" onClick="popModal();"><img src="link"></a> 
      </tr> 
      <?php 
      } 
      ?> 
     </tbody>  
    </table> 
</div> 

JS/JQuery

function popModal(){ 
    $("#foo").dialog({ 
     open: function (event, ui) { /* some code */ }, 
     resizable: false, 
     height:230, 
     width: 230, 
     modal: true, 
     buttons: { 
     "Change": function() { /* some code */}, 
     "Close": function() { 
      $(this).dialog("close"); 
     } 
     } 

    }); 
} 

И у меня есть DIV блок Foo, чтобы показать данные.

+2

Отменить мероприятие. –

+0

event.preventDefault(); сделал работу. спасибо. – Nutic

ответ

3

Обнаружили 2 способа исправить это.

первый:

Добавлено event.preventDefault(); к popModal(); функция.

второй:

Добавлено onclick = "popModal(); return false;" в HTML часть вызова функции. Кредит идет ко другу.

Надеюсь, это поможет кому-то еще.

2

Как у вас есть <a href="#">, он прыгает на # якорь. Чтобы предотвратить это в jQuery, вы должны положить return false; в конце onclick события, которое находится в вашем случае function popModal().

Так что этот код должен работать:

function popModal(){ 
    $("#foo").dialog({ 
    open: function (event, ui) { /* some code */ }, 
    resizable: false, 
    height:230, 
    width: 230, 
    modal: true, 
    buttons: { 
     "Change": function() { /* some code */}, 
     "Close": function() { 
     $(this).dialog("close"); 
     } 
    } 
    }); 
return false; 
} 

Для простой реализации JS предотвращения действия по умолчанию (например, прыжки на якорь) только Google для event.preventDefault.

+0

Пробовал, не работал. Но я исправил это с добавлением event.preventDefault(); в конце. – Nutic

+0

Может быть, 'onclick =" return popModal() "или' onclick = "popModal(); return false;" 'должен работать тогда. – ProdoElmit

+0

onClick = "popModal(); return false;" работает тоже! – Nutic

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