Сложность присоединения обработчика событий к динамически генерируемым модальным элементам окна.
Этот вопрос является постоянным изучением / открытием этих трех вопросов. Эта проблема для меня началась здесь:
Теперь этот пост касается поста @StephenMuecke о динамическом подключении обработчика событий. Это было новым для меня, поэтому я должен был прочитать, но теперь я вижу, что это имеет смысл.
Что ж, после прочтения документации и многочисленных сообщений SO я все еще не могу заставить обработчик события click срабатывать??
На этот раз я решил пойти по другому пути. Я создал jsfiddle, демонстрирующий проблему. http://jsfiddle.net/ramjet/93nqs040/17/
Однако jsfiddle мне пришлось немного измениться, чтобы заставить его работать в их рамках. Ниже приведен актуальный код.
Скрипт родительского окна, запускающий модальный режим: предупреждение Bound срабатывает.
<script>
$(document).ready(function ()
{
$("#new").click(function (e)
{
e.preventDefault();
var ischanging = false;
var financierid = 0;
var detailsWindow = $("#window").data("kendoWindow");
if (!detailsWindow)
{
// create a new window, if there is none on the page
detailsWindow = $("#window")
// set its content to 'loading...' until the partial is loaded
.html("Loading...")
.kendoWindow(
{
modal: true,
width: "800px",
height: "400px",
title: "@T("...")",
actions: ["Close"],
content:
{
url: "@Html.Raw(Url.Action("ActionName", "Controller"))",
data: { financierId: financierid, isChanging: ischanging }
}
})
.data("kendoWindow").bind('refresh', function (e)
{
alert('Bound');
$('document').on("click", "#save", function () { alert("i work");});
}).center();
}
detailsWindow.open();
});
</script>
Модальный полный HTML, который я не думал, был необходим, но если это так, я обновлю его. Это просто элемент, который я пытаюсь динамически связать.
<input type="button" id="save" style="margin-right:10px;" value="Save Record" />
1 ответ
document
не нужны кавычки:
$(document).on("click", "#save", function () { alert("i work");});
"document"
ищет элемент document
не фактическая document
$("document").length; //0
$(document).length; //1