2012-06-03 4 views
14

Я пытаюсь получить эту всплывающую форму диалога, чтобы отобразиться, когда эта ссылка нажата, но она не работает для меня. Я работаю над этим в течение последних трех часов, и это становится слишком расстраивающим для меня.jquery dialog popup

Вот мой HTML

<a href="#" id="contactUs">Contact Us</a> 
<div id="dialog" title="Contact form"> 
    <p>appear now</p> 
</div> 

А вот мой JavaScript, это во внешнем файле.

$("#contactUs").click(function() { 
    $("#dialog").dialog("open"); 
    return false; 
}); 

Я использовал эти ссылки, но безрезультатно для меня.

http://jqueryui.com/demos/dialog/#modal

http://jqueryui.com/demos/dialog/#default

Пожалуйста, дайте мне знать, если иметь идеи, очень высокую оценку, спасибо.

+0

Нет ошибки? Нет странных визуальных действий? Ничего ? – Zuul

+0

Если вам интересно, у меня есть плагин для упрощения диалогов jQuery: http://www.mostthingsweb.com/2011/12/dialogwrapper-2-1-released/ –

+0

ah извините, в основном, ошибка в том, что всплывающее окно вообще не отображается. И спасибо за ссылку, я проверю это сейчас. – rj2700

ответ

34

Этот HTML отлично:

<a href="#" id="contactUs">Contact Us</a>     
<div id="dialog" title="Contact form"> 
    <p>appear now</p> 
</div> 

Вы должны инициализировать диалог (не уверен, что если вы делаете это):

$(function() { 
    // this initializes the dialog (and uses some common options that I do) 
    $("#dialog").dialog({ 
    autoOpen : false, modal : true, show : "blind", hide : "blind" 
    }); 

    // next add the onclick handler 
    $("#contactUs").click(function() { 
    $("#dialog").dialog("open"); 
    return false; 
    }); 
}); 
+0

Спасибо, это помогает, однако, диалог все еще не отображается для меня. Я попробую оглядеться больше. – rj2700

+0

Попробуйте эту скрипку: http://jsfiddle.net/N7PRp/ Это работает для меня. – rcdmk

7

Ваша проблема заключается в вызове для диалогового

Если вы не инициализируете диалоговое окно, вам не нужно пропускать «открытое» для его отображения:

$("#dialog").dialog(); 

Кроме того, этот код должен быть включен в функцию $(document).ready(); или быть ниже элементов, которые будут работать.

+0

Спасибо. Я пробовал это, не пропуская открытого, но все равно не работает для меня. Кроме того, я не размещал готовое событие, но оно присутствует в документе. – rj2700

+0

Попробуйте эту скрипку: http://jsfiddle.net/N7PRp/ Это работает для меня. – rcdmk

3

Это довольно просто, первый HTML должен быть добавлен:

<div id="dialog"></div> 

Затем он должен быть начато:

<script type="text/javascript"> 
    jQuery(document).ready(function() { 
    jQuery('#dialog').dialog({ 'autoOpen': false }); 
    }); 
</script> 

После этого вы можете показать его по коду:

jQuery('#dialog').dialog('open'); 
3

Использование ниже код, он работал для меня.

<script type="text/javascript"> 
    $(document).ready(function() { 
      $('#dialog').dialog({ 
       autoOpen: false, 
       title: 'Basic Dialog' 
      }); 
      $('#contactUs').click(function() { 
       $('#dialog').dialog('open'); 
      }); 
     }); 
</script> 
1

Вы можете использовать следующий скрипт. Это сработало для меня

Сам модаль состоит из основного модального контейнера, заголовка, тела и нижнего колонтитула. Нижний колонтитул содержит действия, которые в этом случае являются кнопками ОК, заголовок содержит заголовок и кнопку закрытия, а тело содержит модальный контент.

$(function() { 
     modalPosition(); 
     $(window).resize(function() { 
      modalPosition(); 
     }); 
     $('.openModal').click(function (e) { 
      $('.modal, .modal-backdrop').fadeIn('fast'); 
      e.preventDefault(); 
     }); 
     $('.close-modal').click(function (e) { 
      $('.modal, .modal-backdrop').fadeOut('fast'); 
     }); 
    }); 
    function modalPosition() { 
     var width = $('.modal').width(); 
     var pageWidth = $(window).width(); 
     var x = (pageWidth/2) - (width/2); 
     $('.modal').css({ left: x + "px" }); 
    } 

не смотрите: - Modal popup using jquery in asp.net