AlexandrDP
@AlexandrDP
C#, ASP .NET MVC, WindowsPhone, Android

Javascript, слои, ограничение области видимости

Изучаю Javascript.
Есть код
Основная страница:
<a class="btn" onclick="Dialog()">@R.R.Actions</a>

<script>
    function Dialog() {

        $.ajax({
            type: 'GET',
            url: '@Url.Content("~/Home/Test")',
            success: function (data) {
                var div = $(data.html);
                div.dialog({
                    width: 'auto',
                    height: 'auto',
                    title: new Date().toLocaleTimeString()
                });
            }
        });
    }
</script>


Код который подгружается:
<div>
    <div id="text"></div>

    <a class="btn" onclick="Dialog()">Dialog</a>
    <a class="btn" onclick="Dialog2()">Dialog2</a>
</div>

<script>
    $("#text").html(new Date().toLocaleTimeString());
    
    function Dialog2() {
        $("#text").html(new Date().toLocaleTimeString());
    }
</script>



Основная задача. По кнопке создать диалог из полученного html, и заставить его работать независимо.
Есть ряд вопросов, к текущему коду:
1. Почему открывается 3 диалога, 2 из них пусты?
2. Почему после 2 нажатия и получения 2 диалога, текст обновляется в 1?
2.1. Почему нажатие в Dialog2 изменяет текст в диалоге 1?
3. Какой принцип нужно использовать, чтобы 2… х диалогов, созданных из одинакового html были независимы?
  • Вопрос задан
  • 3841 просмотр
Пригласить эксперта
Ответы на вопрос 2
@mayorovp
Ответ: потому что используются id-шники. Любой кусок кода, в котором есть id="..." по определению не может быть нормально подгружен два раза.
Ответ написан
wa_Nadoo
@wa_Nadoo
Пока Вы только изучаете JS, не забывайте, что это синтетический пример для демонстрации определенных фишек языка. За подобный код в продакшне Вас просто руками и ногами побьют)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы