我正在玩 Jquery UI 对话框。我有一个带有gridview 的页面、一个刷新gridview 的按钮和一个链接。单击链接时,会弹出一个对话框窗口,其中包含记录的详细信息。
当我在子页面上按保存时,我让子页面从父页面调用 javascript 函数。在此函数中,它尝试执行按钮单击事件,但似乎不起作用。
如果您查看下面的 showThanks 函数,警报有效,按钮文本更改但按钮单击不起作用。
这可能是一项安全功能吗?两个页面现在都在同一页面上。
嗯有什么线索吗?
谢谢
编辑 - 如果您手动单击按钮,它会更改网格(在按钮事件处理程序中)。然而,jquery 似乎并没有进入按钮的事件处理程序,并且网格没有改变。
父页面html
<asp:GridView ID="gv" runat="server" />
<asp:Button ID="btnRefresh" runat="server" />
<a id="popoutUsers" href="popup.aspx?page=Bob" class="OpenNewLink">CLICK ME</a>
<script type="text/javascript">
$(function () {
$('.OpenNewLink').click(function () {
var url = $(this).attr('href');
var dialog = $('<div id="modal"></div>').appendTo('body')
$('<iframe id="site" src="' + url + '" />').dialog({
modal: true
, close: function (event, ui) {
// remove div with all data and events
dialog.remove();
}
});
return false;
});
showThanks = function () {
alert("Thanks");
var button = $("#btnRefresh");
button.val("hello"); //This works
button.click(); //Nothing seems to happen
// button.trigger("click"); (Tried trigger as well but no luck)
};
});
</script>
子页面
<div>
Why hello there
<asp:Button ID="btnBob" runat="server" Text="click me" />
</div>
<script type="text/javascript">
$(function () {
$('#btnBob').click(function (e) {
e.preventDefault();
window.parent.showThanks();
window.parent.$('.ui-dialog-content').filter(function () { return $(this).dialog('isOpen'); }).dialog('close');
return false;
});
});
</script>