Как реализовать незаметный JavaScript с поколением динамического контента?

У меня была эта проблема, и оказалось, что один проект указывал на SQLExpress, но тот, у кого проблема, указывал на LocalDb. (в их соответствующем web.config). Глупый надзор, но стоит отметить здесь, в случае, если кто-либо другой устранит эту проблему.

7
задан ɢʀᴜɴᴛ 25 June 2017 в 21:32
поделиться

5 ответов

Необходимо добавить что-то к отделениям, которое определяет, какое поведение они имеют, затем используйте jQuery, чтобы выбрать те отделения и добавить поведение. Одна опция состоит в том, чтобы использовать атрибут класса, хотя возможно это должно использоваться для презентации, а не поведения. Альтернатива была бы атрибутом рэла, но я обычно нахожу, что Вы также хотите указать другой CSS для каждого поведения, таким образом, класс, вероятно, в порядке в этом экземпляре.

Так, например, позволяет, предполагают, что Вы хотите четное и нечетное поведение:

<div class="odd">...</div>
<div class="even">...</div>
<div class="odd">...</div>
<div class="even">...</div>

Затем в jQuery:

$(document).load(function() {
$('.odd').click(function(el) {
// do stuff
});
$('.even').click(function(el) {
// dostuff
});
});

jQuery имеет очень мощный селекторный механизм, который может найти на основе любого основанного на CSS селектора и также поддерживать некоторый XPath и его собственные селекторы. Узнайте их! http://docs.jquery.com/Selectors

5
ответ дан 7 December 2019 в 05:33
поделиться

Я рекомендовал бы игнорировать стандарты W3C и выписать свойства HTML на элементах, которым нужны обработчики, присоединенные к ним:

Примечание: это не повредит рендеринг страницы!

<ul>
    <li handler="doAlertOne"></li>
    <li handler="doAlertTwo"></li>
    <li handler="doAlertThree"></li>
</ul>

Объявите несколько функций:

function doAlertOne() { }
function doAlertTwo() { }
function doAlertThree() { }

И затем с помощью jQuery как так:

$("ul li").each(function ()
{
    switch($(this).attr("handler"))
    {
        case "doAlertOne":
            doAlertOne();
            break;

        case ... etc.
    }
});

Будьте прагматически настроены.

1
ответ дан 7 December 2019 в 05:33
поделиться

Я не имею, действительно не знают о JQuery, но я действительно знаю, что инструментарий Dojo действительно делает очень незаметный JavaScript возможным.

Смотрите на пример здесь: http://dojocampus.org/explorer/#Dojo_Query_Adding%20Events

Демонстрация динамично добавляет события только к таблица HTML на основе классов.

Другим примером являются функции поведения, описал here:http://dojocampus.org/content/2008/03/26/cleaning-your-markup-with-dojobehavior/

0
ответ дан 7 December 2019 в 05:33
поделиться

Немного трудно сказать от Вашего вопроса, но возможно можно использовать различные селекторы jQuery для установки различных поведений щелчка? Например, скажите, что у Вас есть следующее:

<div class="section-1">
    <div></div>
</div>
<div class="section-2">
    <div></div>
</div>

Возможно, Вы могли сделать следующее в jQuery:

$('.section-1 div').onclick(...one set of functionality...);
$('.section-2 div').onclick(...another set of functionality...);

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

Я должен был бы знать больше о специфических особенностях Вашей ситуации для предоставления более сфокусированного совета, но возможно это запустит Вас.

0
ответ дан 7 December 2019 в 05:33
поделиться

Я рекомендовал бы использовать эту вещь, названную "Делегация события". Это - то, как это работает.

Так, если Вы хотите обновить область, заявляет отделение, и Вы хотите обработать события незаметно, Вы присоединяете обработчик событий к самому отделению. Используйте любую платформу, Вы предпочитаете делать это. Вложение события может произойти в любое время, независимо от того, если Вы обновили отделение или нет.

Обработчик событий, присоединенный к этому отделению, получит объект-событие как один из, его - аргументы. Используя этот объект-событие, можно затем фигурировать, какой элемент инициировал событие. Вы могли обновить отделение любое количество раз: события, сгенерированные детьми отделения, будут пузыриться до отделения, где можно поймать и обработать их.

Это также оказывается огромной оптимизацией производительности, если Вы думаете о присоединении нескольких обработчиков ко многим элементам в отделении.

2
ответ дан 7 December 2019 в 05:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: