如何在弹出花式框>上附加带有按钮的点击事件
How to attach Click event with a button on popup fancybox>
我无法使用包含input
按钮的弹出表单附加单击事件。代码给出如下:
<a id="btnEditSummary" href=#>Edit Summary </a>
<div id="editSummary" class="hidden">
<input type=button id="btnEdit" value="Update" />
</div>
function openPoPup(clickHandle,contentHandle,width,height)
{
width = typeof a !== 'undefined' ? a : 600;
height = typeof b !== 'undefined' ? b : 300;
$.fancybox(
$(contentHandle).html(),
{
'width' : width,
'height' : height,
'minWidth' : width,
'minHeight' : height,
'autoScale' : true,
'transitionIn' : 'none',
'transitionOut' : 'none',
'hideOnContentClick': false,
'onStart': function () {
//On Start callback if needed
}
}
);
}
$("#btnEditSummary").click(function()
{
openPoPup('#btnEditSummary','#editSummary',300,300);
$( "#btnEdit" ).on( "click", function() {
alert( $( this ).text() );
});
}
$( "#btnEdit" ).on( "click", function() {
alert( $( this ).text() );
});
方法的问题在于,您实际上是在 fancybox 中显示#editSummary
选择器clone
,作为参数在 openPoPup()
函数中传递,因此 click
事件绑定到文档流中的原始选择器,而不是绑定到 fancybox 内的clone
。
作为一种解决方法,您可以使用 fancybox onComplete
回调(我假设您使用的是 v1.3.4,因为代码中的 API 选项(将 click
事件绑定到 fancybox 中的元素#btnEdit
,例如:
function openPoPup(clickHandle, contentHandle, width, height) {
width = typeof a !== 'undefined' ? a : 600;
height = typeof b !== 'undefined' ? b : 300;
$.fancybox($(contentHandle).html(), {
width: width,
height: height,
// minWidth: width, // not valid in v1.3.x but 2.x
// minHeight: height, // not valid in v1.3.x but 2.x
autoScale: true,
transitionIn: 'none',
transitionOut: 'none',
hideOnContentClick: false,
onStart: function () {
//On Start callback if needed
},
onComplete: function () {
// bind click event to element inside fancybox
$("#fancybox-content").on("click", "#btnEdit", function () {
alert("click event bound");
});
}
});
}
jQuery(document).ready(function ($) {
$("#btnEditSummary").click(function () {
openPoPup('#btnEditSummary', '#editSummary', 300, 300);
});
}); // ready
请注意,我正在使用.on()
的委托形式:
$("#fancybox-content").on("click", "#btnEdit", function (){ ... });
参见 JSFIDDLE
相关文章:
- Asp.net按钮事件点击不做回发.有可能吗
- plupload智能手机和平板电脑浏览按钮事件未启动
- 如何使用C#为特定按钮事件调用JavaScript方法
- jQuery UI可排序,释放鼠标按钮事件
- jQuery按钮事件处理程序没有't更改内容
- 未调用按钮事件
- 如何将按钮事件与唯一控件关联
- 如何在不加载页面的情况下创建按钮事件
- 用于更改 HTML 表单中的输入文本的 Javascript 按钮事件
- 引导模式的自定义按钮事件多次显示
- 科尔多瓦 iOS 按钮事件
- 英特尔 XDK 音量按钮事件
- 删除按钮事件的操作并创建另一个事件
- 单选按钮事件未触发
- 突出显示如何在单击重置缩放按钮事件中捕获和插入逻辑
- jQuery 自动填充选择:“按钮事件”
- 客户端模板按钮事件未触发
- 如何通过Chrome扩展程序检测按钮事件
- 从点击按钮事件原型或 jQuery 发布复选框数组
- Javascript 后退按钮事件侦听器覆盖 android 设备后退按钮