Подтвердить что ты не робот

Открыть текстовое диалоговое окно Jquery при событии click

Нижеприведенный код отлично работает только для первого события кликов. Однако для любого последующего щелчка ничего не происходит. Я тестировал это на firefox, ie7, но все тот же. Я что-то упускаю?

<script type="text/javascript">
$(document).ready(function() {
    //$('#dialog').dialog();
    $('#dialog_link').click(function() {
        $('#dialog').dialog();
        return false;
    });
});
</script>    
</head><body>
   <div id="dialog" title="Dialog Title" style="display:none"> Some text</div>  
   <p id="dialog_link">Open Dialog</p>  
</body></html>
4b9b3361

Ответ 1

попробовать

$(document).ready(function () {
    //$('#dialog').dialog(); 
    $('#dialog_link').click(function () {
        $('#dialog').dialog('open');
        return false;
    });
});

есть открытый arg в последней части

Ответ 2

Попробуйте это

    $(function() {

$('#clickMe').click(function(event) {
    var mytext = $('#myText').val();


    $('<div id="dialog">'+mytext+'</div>').appendTo('body');        
    event.preventDefault();

        $("#dialog").dialog({                   
            width: 600,
            modal: true,
            close: function(event, ui) {
                $("#dialog").remove();
                }
            });
    }); //close click
});

И в HTML

<h3 id="clickMe">Open dialog</h3>
<textarea cols="0" rows="0" id="myText" style="display:none">Some hidden text display none</textarea>

Ответ 3

$(function() {

$('#clickMe').click(function(event) {
    var mytext = $('#myText').val();

    $('<div id="dialog">'+mytext+'</div>').appendTo('body');        
    event.preventDefault();

        $("#dialog").dialog({                   
            width: 600,
            modal: true,
            close: function(event, ui) {
                $("#dialog").hide();
                }
            });
    }); //close click
});

Лучше использовать .hide() вместо .remove(). С .remove() он возвращает undefined, если вы нажмете ссылку один раз, затем закройте модальную форму и, если вы снова нажмете модальную ссылку, она вернет undefined с .remove.

С .hide() он не работает, и он работает как легкий ветерок. Ty для фрагмента из первых рук!

Ответ 4

Если вы хотите поместить некоторую страницу в диалог, вы можете использовать эти

function Popup()
{
 $("#pop").load('login.html').dialog({
 height: 625,
 width: 600,
 modal:true,
 close: function(event,ui){
     $("pop").dialog('destroy');

        }
 }); 

}

HTML:

<Div id="pop"  style="display:none;">

</Div>

Ответ 5

Попробуйте добавить эту строку перед вашей диалоговой линией.

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

Этот метод работал у меня. Кажется, что команда "закрыть" снова запускает диалог, только с .dialog().

Используя ваш код в качестве примера, он будет выглядеть следующим образом (обратите внимание, что вам может потребоваться добавить больше кода, чтобы он имел смысл):

    <script type="text/javascript">
$(document).ready(function() {
    //$('#dialog').dialog();
    $('#dialog_link').click(function() {
$( "#dialog" ).dialog( "open" );        
$('#dialog').dialog();
        return false;
    });
});
</script>    
</head><body>
   <div id="dialog" title="Dialog Title" style="display:none"> Some text</div>  
   <p id="dialog_link">Open Dialog</p>  
</body></html>

Ответ 6

Может быть полезно...:)

$(document).ready(function() {
    $('#buutonId').on('click', function() {
        $('#modalId').modal('open');
    });
});