如何将事件处理程序分配给 JQuery UI 对话框中的自定义按钮
How to assign event handler to custom button in JQuery UI Dialog
在我的 html 中,我有这样的代码:link 和 div 用于 jQuery UI 对话框:
<a data-comment="delete" data-comment-url="<?=Yii::app()->createUrl('comments/delete', ['id' => $comment->id])?>" href="javascript:" ">
</a>
<!-- div with dialog's markup -->
<div id="commentDelete" class="modal smallDialog" title="УДАЛЕНИЕ">
Delete this row &
<a class="button142 wa" id="confirmDeleteComment" style="">Yes</a>
<a href="javascript:;" onClick="$('#commentDelete').dialog('close');" class="button142 wa">No</a>
</div>
在我的外部 js 文件中,我有事件处理程序来捕获对 link:
的点击
$(document).on('click', '[data-comment="delete"]', function (evt) {
evt.preventDefault();
var data = $.data(document, 'comments'),
$this = $(this);
var options = {
title: 'Delete row?',
autoOpen: false,
resizable: false,
height: 200,
width: 380,
show: { effect: 'drop', direction: "up" },
modal: true,
draggable: true,
open: function (event, ui) {
},
close: function (event, ui) {
$("#commentDelete").dialog().dialog('close');
},
create: function(event, ui){
$('#confirmDeleteComment').click(function(){
console.log("!!!");
});
}
}
$("#commentDelete").dialog(options).dialog('open');
当我点击 link 时,此事件触发良好,没问题。但我希望在函数 open()
中我可以将我的操作分配给 div 的第一个按钮,它在 UI 对话框中使用。跟踪代码,我看到 open()
已触发,点击分配顺利通过,没有错误,但是当我尝试点击按钮时 - 我没有考虑任何操作 - 控制台中没有日志。
我做错了什么?
您可以将其委托给模态 div
级别:
$('#commentDelete').on('click', '#confirmDeleteComment', function () {
console.log("!!!");
});
在我的 html 中,我有这样的代码:link 和 div 用于 jQuery UI 对话框:
<a data-comment="delete" data-comment-url="<?=Yii::app()->createUrl('comments/delete', ['id' => $comment->id])?>" href="javascript:" ">
</a>
<!-- div with dialog's markup -->
<div id="commentDelete" class="modal smallDialog" title="УДАЛЕНИЕ">
Delete this row &
<a class="button142 wa" id="confirmDeleteComment" style="">Yes</a>
<a href="javascript:;" onClick="$('#commentDelete').dialog('close');" class="button142 wa">No</a>
</div>
在我的外部 js 文件中,我有事件处理程序来捕获对 link:
的点击$(document).on('click', '[data-comment="delete"]', function (evt) {
evt.preventDefault();
var data = $.data(document, 'comments'),
$this = $(this);
var options = {
title: 'Delete row?',
autoOpen: false,
resizable: false,
height: 200,
width: 380,
show: { effect: 'drop', direction: "up" },
modal: true,
draggable: true,
open: function (event, ui) {
},
close: function (event, ui) {
$("#commentDelete").dialog().dialog('close');
},
create: function(event, ui){
$('#confirmDeleteComment').click(function(){
console.log("!!!");
});
}
}
$("#commentDelete").dialog(options).dialog('open');
当我点击 link 时,此事件触发良好,没问题。但我希望在函数 open()
中我可以将我的操作分配给 div 的第一个按钮,它在 UI 对话框中使用。跟踪代码,我看到 open()
已触发,点击分配顺利通过,没有错误,但是当我尝试点击按钮时 - 我没有考虑任何操作 - 控制台中没有日志。
我做错了什么?
您可以将其委托给模态 div
级别:
$('#commentDelete').on('click', '#confirmDeleteComment', function () {
console.log("!!!");
});