jQuery в часто используемом частичном представлении в MVC3 - PullRequest
1 голос
/ 05 января 2012

Я не был уверен, что лучший способ сделать это.

По сути, у меня есть частичное представление, которое может быть помещено на страницу несколько раз, а в частичном представлении оно содержит jQuery, который связывается сопределенные события для вещей, которые могут произойти на странице.Например, щелчки по кнопкам и т. Д.

Теперь, используя селекторы jQuery, вы будете нацеливать объекты на странице с помощью идентификатора (что я не могу сделать, так как несколько элементов на странице будут иметь одинаковый идентификатор).Вы также можете использовать имена классов, чтобы иметь возможность выбирать вещи, но это тоже не сработает, поскольку для каждого частичного представления все они будут нацелены друг на друга, что не может произойти.

Мне нужен каждый кусок jQuery, чтобы выбирать тольковещи со своей частичной точки зрения.Как бы я это сделал?

Я могу думать только об одном способе сделать это, и это кажется чем-то вроде взлома.Но я мог бы в основном создать модель, которая содержит строку, которая будет селектором для контейнера, который будет окружать частичное представление.Тогда в представлении он будет использовать селектор, а также обычные имена классов, которые он обычно использует.

Есть ли лучший способ?

Ответы [ 2 ]

1 голос
/ 05 января 2012

Я бы позаботился о том, чтобы содержимое вашего частичного представления содержалось в каком-то уникально помеченном элементе div (будь то идентификатор, класс или другое).Ограничьте область действия этим идентификатором.

Полагаю, я бы определил идентификатор как, возможно, var myId = Guid.NewGuid().ToString("N"); в верхней части частичного и удостоверился, что содержимое содержимого частичного кода заключено во что-то вроде <div id="@myId"> ...и тогда в вашем jquery сделайте так, чтобы ваш селектор ограничил область действия до @myId

0 голосов
/ 30 марта 2013

Я думаю, что есть более простой способ!Это метод .parents () jQuery, в котором вы можете найти родителя нажатой кнопки и т. Д.

Сделайте это:

  1. В вашем частичном представлении должен быть div с определенным идентификатором(например, «pView»), который содержит все другие элементы
  2. В частичном представлении присвойте кнопке определенный идентификатор (например, «btnDelete»)
  3. Напишите свой скрипт какthis:

    $ (документ) .ready (function () {

    $("#pView #btnDelete").click(function() {
        var partialView = $(this).parents("#pView");
    
        // Now you detect what pView should be deleted!
        // this.parents("#pView") means select the parent with id = "pView"
        // ...
    
    });
    

    });

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...