Не уверен, что в вашем случае, но вы можете попытаться справиться с «мертвой зоной», создающей новый связыватель событий после создания элемента, например:
document.getElementById("add").addEventListener("click", function(e) {
alert("eeeeee");
}, true);
// find element
var banner = $("#banner-message");
function changeColor() {
setTimeout(function() {
banner.removeClass("alt");
alert('Your function');
}, 1000)
}
// simulating async creation of element
var button = $("<button>", {
text: "Change color",
id: "add"
}).on("click", function(event) {
event.stopPropagation();
banner.addClass("alt");
alert('button click');
}).appendTo(banner);
document.getElementById("add").addEventListener("click", function(e) {
changeColor()
}, true);
body {
background: #20262E;
padding: 20px;
font-family: Helvetica;
}
#banner-message {
background: #fff;
border-radius: 4px;
padding: 20px;
font-size: 25px;
text-align: center;
transition: all 0.2s;
margin: 0 auto;
width: 300px;
}
button {
background: #0084ff;
border: none;
border-radius: 5px;
padding: 8px 14px;
font-size: 15px;
color: #fff;
}
#banner-message.alt {
background: #0084ff;
color: #fff;
margin-top: 40px;
width: 200px;
}
#banner-message.alt button {
background: #fff;
color: #000;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<div id="banner-message">
<p>Hello World</p>
</div>
Другой подход (Мы можем назвать это как «быстрое исправление», «обходной путь», «gambiarra», «Macgyver»]) . Но может сработать для вас, это связать ваше событие с родительским наложенным элементом с помощью CSS, а затем запустить исходное событие. Что-то вроде:
// find element
var banner = $("#banner-message");
$(document).on('click', "#overlay-example", function(e) {
changeColor();
$(this).find('button#add').click();
});
function changeColor() {
banner.removeClass("alt");
alert('Your function');
}
// simulating async creation of element
var button = $("<button>", {
text: "Change color",
id: "add"
}).on("click", function(event) {
event.stopPropagation();
banner.addClass("alt");
alert('button click');
}).appendTo(banner.find('#overlay-example'));
body {
background: #20262E;
padding: 20px;
font-family: Helvetica;
}
#banner-message {
background: #fff;
border-radius: 4px;
padding: 20px;
font-size: 25px;
text-align: center;
transition: all 0.2s;
margin: 0 auto;
width: 300px;
}
button {
background: #0084ff;
border: none;
border-radius: 5px;
padding: 8px 14px;
font-size: 15px;
color: #fff;
}
#banner-message.alt {
background: #0084ff;
color: #fff;
margin-top: 40px;
width: 200px;
}
#banner-message.alt button {
background: #fff;
color: #000;
}
/* */
#banner-message #overlay-example {
z-index: 10;
}
#banner-message #overlay-example #add {
z-index: 0;
pointer-events: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.1/jquery.min.js"></script>
<div id="banner-message">
<p>Hello World</p>
<div id="overlay-example">
</div>
</div>
По сути, .NET RIA Services - это структура, которая скрывает логику подключения к сети для обработки через проводной RPC и связывает код между клиентом и сервером.
Вы можете думать о это как RAD для разработки клиент / сервер.
Из блога Динеша:
1. Упростите n-уровневую разработку (и
действительно покажу вам лучший способ получить
многоуровневая история для вашей ORM
объекты - LINQ to SQL или EF или
что угодно)
2. Поддержка полнофункционального интернет-приложения
(RIA) разработка на Silverlight -
есть отличная сквозная история для
проверка, аутентификация, легко
привязка данных и т. д.
3. Расширьте возможности разработки ASP.NET
опыт. Это основано на том, что
вы знаете и уже пользуетесь. Там есть
даже ASP.NET DomainDataSource и
там шаблоны для SEO (и
надеюсь, что скоро кое-что из AJAX -
скрестив пальцы).
Чтобы ответить на некоторые другие ваши вопросы о будущем Брэд Абрамс говорит :
Доступ к ASP.NET - Следуя шаблону служб RIA, вы также сможете создавать ASP. Приложения .NET с легкостью используют все встроенные функции служб RIA, такие как проверка данных, авторизация и т. Д. В мартовской предварительной версии мы предлагаем элемент управления asp: DomainDataSource, который обеспечивает очень простой доступ ASP.NET WebForms к вашему домену. логика. В основе этого лежит будущая версия динамических данных ASP.NET, которая упрощает создание общего стандартного пользовательского интерфейса на основе логики вашего домена.
Вернувшись в Редмонд, мы работаем над предоставлением очень чистого доступа к логике вашего домена через ASP.NET MVC. Шаблон здесь очень крутой, и я не могу дождаться, чтобы поговорить о нем в будущей CTP.
Я предполагаю, основываясь на некоторых подкастах, которые я слушал:
Это библиотека, которая делает что-то вроде этого:
Если я правильно помню, у них была поддержка только для генерации кода .NET, так что приложения silverlight (и, возможно, WPF / XBAP) были им. Они упомянули создание javascript как что-то на будущее (возможно).
Казалось, что вы можете выйти за рамки простой проверки и обеспечить соблюдение «бизнес-правил» и так далее, но я не совсем уверен, как это будет работать.
Ненавижу просто перенаправлять вас на веб-сайт, но эта ссылка имеет хорошее объяснение.
Службы Microsoft .NET RIA Services упрощают традиционный шаблон многоуровневого приложения за счет объединения платформ ASP.NET и Silverlight. Службы RIA Services предоставляют шаблон для написания логики приложения, которая выполняется на промежуточном уровне и контролирует доступ к данным для запросов, изменений и настраиваемых операций. Он также обеспечивает сквозную поддержку для общих задач, таких как проверка данных, аутентификация и роли, путем интеграции с компонентами Silverlight на клиенте и ASP.NET на промежуточном уровне.
Насколько я понимаю, это абстракция. из кода и вашей бизнес-логики. Например,
Из того, что я мог понять из всех блогов, презентаций и официальных маркетинговых заявлений:
Шаблон, который четко разграничивает логику приложения, логику сохранения и потребителя (например, услуги и / или UI-клиент). Это поощряет повторное использование логики приложения и взаимозаменяемость как персистентной, так и потребительской логики.
И да, из того, что я читал, будут поддерживаться не-Silverlight клиенты.
Некоторые говорят, что для Silverlight и WCF это то же самое, что DCOM для VB6; очень легко соединить клиент и сервер без реального понимания последствий.
Общая информация и загрузки http://silverlight.net/forums/t/80529.aspx
Подробная информация здесь RIAServicesOverviewforMay2009.docx
http://www.microsoft.com/downloads/details.aspx?FamilyID=76bb3a07-3846-4564-b0c3-27972bcaabce&displaylang=en
Кратко, насколько я могу это сделать ...
Создание внешнего интерфейса Silverlight и серверная часть использует одни и те же классы моделей максимально прозрачно. Предоставляет вам интегрированную проверку модели и операции, делая классы моделей доступными для внешнего интерфейса.
Ментальная модель: RIA как одно приложение вместо двух.