Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Почему div не показывается на экране / 25 сообщений из 42, страница 1 из 2
03.07.2014, 19:03
    #38687192
tual
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему div не показывается на экране
https://www.udemy.com/blog/jquery-popup-window/

Почему div id="hello" не показывается на экране сразу, а только в попапе ?

Сохранил текст в html и работает.
Но почему-то в моей cshtml странице, и текст дива сразу показывается, и при нажатии на кнопку ничего не происходит.
Причем даже если все референсы на конкретные версии jQuery скопировал. Вообще не пойму почему.
...
Рейтинг: 0 / 0
03.07.2014, 19:06
    #38687196
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему div не показывается на экране
tualПочему div id="hello" не показывается на экране сразу, а только в попапе ?потому что вот эта строка
Код: javascript
1.
$( "#hello" ).dialog({ autoOpen: false });

прячет его при загрузке документа
...
Рейтинг: 0 / 0
03.07.2014, 19:08
    #38687203
tual
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему div не показывается на экране
Интересно, почему ж у меня не прячет, а сходу на экране показывает.
У меня Index.cshtml который студия 2013 сгенерила когда я создал New Internet Application (MVC4)

Отчего может зависеть ?
...
Рейтинг: 0 / 0
03.07.2014, 19:10
    #38687205
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему div не показывается на экране
tualу меняочень сложно увидеть ваш cshtml-файл на таком расстоянии и через стену (
...
Рейтинг: 0 / 0
03.07.2014, 19:19
    #38687226
tual
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему div не показывается на экране
Хм, я сделал тотальное новое вью, и попап показался
А что тогда может мешать ему на нынешней странице (она довольно хаотична)

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
@model IEnumerable<DAL.ORM.AdvConstruct>

@{
    ViewBag.Title = "Advertisement constructions";
    WebGrid grid = new WebGrid(Model);
}

<link href="@Url.Content("~/Content/themes/base/minified/jquery-ui.min.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.8.2.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.24.min.js")" type="text/javascript"></script>
<link href="@Url.Content("~/Content/Grid.css")" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="https://code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">

<script type="text/javascript">

    $(document).ready(function() {

        $("#hello").dialog({ autoOpen: false });
        $("#say_it").click(function () {
            $("#hello").dialog("open");
        });

        $(".editDialog").live("click", function (e) {
            var url = $(this).attr('href');
            $("#dialog-edit").dialog({
                title: 'Edit Advertisement Construct',
                autoOpen: false,
                resizable: false,
                height: 455,
                width: 550,
                show: { effect: 'drop', direction: "up" },
                modal: true,
                draggable: true,
                open: function (event, ui) {
                    $(this).load(url);

                },
                close: function (event, ui) {
                    $(this).dialog('close');
                }
            });

            $("#dialog-edit").dialog('open');
            return false;
        });

    });
</script>

<h2>List of constructions </h2>

@grid.GetHtml(columns: new[]
{
    grid.Column("Id"),
    grid.Column("Description"),
    grid.Column("MaintenanceTime", header: "Maintenance Time", format: p => p.MaintenanceTime.ToShortDateString(), style: "maintenanceTimeColumn"),
    grid.Column("Location", style: "locationColumn"),
    grid.Column("Height", style: "heightColumn"),
    grid.Column("Width", style: "widthColumn"),
    grid.Column("MonthlyCost", header: "Monthly Cost", style: "monthlyCostColumn"),
    grid.Column("AdvConstructType", header: "Construction Type", format: p => p.Description, style: "advConstructTypeColumn"),
    grid.Column("", header: "Actions",
                    format: @<text>
            @Html.ActionLink("Edit", "EditConstruct", new { id = item.Id, @class = "editDialog" })
            |
            @Html.ActionLink("Delete", "Delete", new { id = item.Id })
                        </text>
                )
}
)

@Html.ActionLink("Add new construction", "Add")
@Html.ActionLink("PopupTest", "Index", "PopupTest")

<div id="dialog-edit" style="display: none">
</div>

<button id="say_it">Say "Hello!"</button>
<div id="hello" title="Hello  World!">
    <p>
        <font face="Georgia" size="4">
            Hey, world, I just said "Hello!"
        </font>
    </p>
</div>



Кстати, другая ерунда с диалогом по линку Edit. Диалог показывается просто на месте текущей страницы
...
Рейтинг: 0 / 0
03.07.2014, 19:30
    #38687241
tual
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему div не показывается на экране
http://stackoverflow.com/questions/18860508/why-jquery-doesnt-work-on-a-page-defined-in-layout
Это помогло с попапом Hello

Остался второй вопрос.
Почему когда кликаю Edit - у меня получается не попап, а его содержимое заместо основной страницы ?
...
Рейтинг: 0 / 0
03.07.2014, 19:38
    #38687245
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему div не показывается на экране
а EditConstruct у вас возвращает частичное представление?
...
Рейтинг: 0 / 0
03.07.2014, 19:42
    #38687252
tual
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему div не показывается на экране
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
 public ActionResult EditConstruct(int id)
        {
            var data = advConstructRepository.Get(id);

            AdvConstructModel model = new AdvConstructModel
            {
                Id = data.Id,
                Description = data.Description,
                MaintenanceTime = data.MaintenanceTime,
                Location = data.Location,
                Height = data.Height,
                Width = data.Width,
                MonthlyCost = data.MonthlyCost,
                AdvConstructType = advConstructRepository.GetAdvConstructType(data.AdvTypeId)
            };

            ViewBag.IsUpdate = true;
            return PartialView("EditConstruct", model);
        }



Что View что PartialView одинаково на весь тот же самый экран
...
Рейтинг: 0 / 0
03.07.2014, 19:48
    #38687256
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему div не показывается на экране
ну на весь экран в диалоге? Или без диалога?
Смотрите в браузере результирующий html...
...
Рейтинг: 0 / 0
03.07.2014, 19:52
    #38687257
tual
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему div не показывается на экране
Исходный код показывает только форму, никаких html и body тегов
С таким урлом - http://localhost:8484/Home/EditConstruct/5?class=editDialog
ну и внутри уже мой EditConstruct.cshtml
...
Рейтинг: 0 / 0
03.07.2014, 19:57
    #38687262
tual
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему div не показывается на экране
Форма даже рабочая, изменение полей изменяет данные в гриде (по кнопке Update конечно)
Но по исходному коду нет включения jQuery скриптов, только лиш тег form
А скрипты вообще в cshtml попапа прописаны
Код: c#
1.
2.
3.
4.
5.
6.
@section Scripts {
    <script src="~/Scripts/jquery-1.8.2.min.js"></script>
    <script src="@Url.Content("~/Scripts/jquery-ui-1.8.24.min.js")" type="text/javascript"></script>
    <script src="~/Scripts/jquery.validate.min.js"></script>
    <script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
}
...
Рейтинг: 0 / 0
03.07.2014, 20:03
    #38687263
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему div не показывается на экране
то есть вы пишете ссылки на скрипты внутри подгружаемого аяксом контента?
феерически оригинально

во-первых секция script рендерится только при рендеринге мастер-страницы на сервере, очевидно, что при подгрузке аяксом никакого рендеринга главной страницы не происходит

во-вторых, ссылки на внешние скрипты надо разместить в мастер-странице, а не тащить их в каждое частичное представление.
...
Рейтинг: 0 / 0
03.07.2014, 20:09
    #38687268
tual
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему div не показывается на экране
Так у автора статьи
http://www.dotnetcodesg.com/Article/UploadFile/2/286/CRUD operation using Modal Popup in ASP.NET MVC 4.aspx
Там это все называется EditEmployee

Я по сути пытаюсь сделать по аналогии
...
Рейтинг: 0 / 0
03.07.2014, 20:12
    #38687271
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему div не показывается на экране
Похоже, у вас не происходит POST при нажатии на ссылку, а происходит обычный GET
Стало быть, у вас не повисла функция live на клике по экшену, то есть на экшене скорее всего нет нужного класса. Зачем у вас собака перед словом class?
...
Рейтинг: 0 / 0
03.07.2014, 20:15
    #38687273
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему div не показывается на экране
вам вместо примера лучше сначала почитать учебник, как работает MVC, как работает jQuery...

кроме того, вы пользуетесь какими-то устаревшими источниками, функция live в jQuery устарела и будет исключена в дальнейших версиях, тэг font устарел и невалиден в html5....
...
Рейтинг: 0 / 0
03.07.2014, 20:16
    #38687275
tual
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему div не показывается на экране
Как раз за тем, чтобы обработать клик на всем что имеет класс editDialog
...
Рейтинг: 0 / 0
03.07.2014, 20:25
    #38687282
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему div не показывается на экране
нет, собака там затем, что class - ключевое слово, это я сразу не сообразил.

Before jQuery 1.7, to stop further handlers from executing after one bound using .live(), the handler must return false. Calling .stopPropagation() will not accomplish this.в этом скорее всего дело
...
Рейтинг: 0 / 0
03.07.2014, 20:26
    #38687283
tual
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему div не показывается на экране
Да я уже на простой клик переписал, толку 0

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
 $(document).ready(function () {

        $("#dialog-edit").dialog({
            title: 'Edit Advertisement Construct',
            autoOpen: false,
            resizable: false,
            height: 455,
            width: 550,
            show: { effect: 'drop', direction: "up" },
            modal: true,
            draggable: true,
            open: function (event, ui) {
                $(this).load(this.href);

            },
            close: function (event, ui) {
                $(this).dialog('close');
            }
        });

        $(".editDialog").click(function (e) {
            $("#dialog-edit").dialog('open');
        });

    });
...
Рейтинг: 0 / 0
03.07.2014, 20:28
    #38687287
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему div не показывается на экране
tualПричем даже если все референсы на конкретные версии jQuery скопировалнеправда ваша, у автора используется jQuery 1.7, а у вас 1.8, возможно из-за этого обработка хендлера в live ведет себя иначе, в общем, переходите на on и stopPropagation
...
Рейтинг: 0 / 0
03.07.2014, 20:28
    #38687288
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему div не показывается на экране
tualДа я уже на простой клик переписал, толку 0stopPropagation
...
Рейтинг: 0 / 0
03.07.2014, 20:32
    #38687294
tual
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему div не показывается на экране
Код: c#
1.
2.
3.
4.
5.
 $(".editDialog").click(function (e) {
            event.preventDefault();
            event.stopPropagation();
            $("#dialog-edit").dialog('open');
        });



Хоть то, хоть то, хоть оба вместе, ничего не изменилось
...
Рейтинг: 0 / 0
03.07.2014, 20:35
    #38687295
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему div не показывается на экране
Код: c#
1.
2.
3.
4.
5.
 $(".editDialog").click(function (e) {
            event.preventDefault();
            event.stopPropagation();
            $("#dialog-edit").dialog('open');
        });

надо ж не тупо копипастить, а еще и думать ))
...
Рейтинг: 0 / 0
03.07.2014, 20:37
    #38687296
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему div не показывается на экране
и вообще, у вас отладчик JS ошибки не показывает или вы им принципиально не пользуетесь?
...
Рейтинг: 0 / 0
03.07.2014, 20:38
    #38687297
tual
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему div не показывается на экране
No luck. Смотрю варианты на stackoverflow, все вроде тривиально просто, но там получается, тут нет
...
Рейтинг: 0 / 0
03.07.2014, 20:43
    #38687299
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему div не показывается на экране
покажи два готовых html-а
изначальный и тот частичный, который возвращается EditConstruct
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Почему div не показывается на экране / 25 сообщений из 42, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]