我在iFrame中有一个按钮,在父窗口中有一个按钮。 iFrame中的按钮是从父窗口触发的。我有一组要从两个按钮执行的代码。代码的一部分特定于iFrame,代码的一部分特定于父窗口。我能够触发iFrame按钮,但问题是父窗口代码在iFrame按钮完成它的操作之前运行。
请帮助我实现这一目标。
请提前建议并提前致谢。
答案 0 :(得分:2)
在外部文档中,设置button2以创建一个新事件,其中包含您在button1完成后要执行的操作链,并将其分派给内部按钮。
根据您要执行的操作,您可能必须在此单击处理程序中声明延迟操作所需的任何变量,以便它们成为闭包的一部分。
$(function(){
$("#button2").click(function(e){
var action = function() {
setTimeout(function(){alert("button2 action")},6000);
}
var innerButton = $("iframe#frame").contents()
.find("#button1");
e.detail = action;
var evt = new CustomEvent('click',e);
innerButton[0].dispatchEvent(evt);
});
});
在内部文档中,在执行按钮单击的常规操作后,检查是否随事件一起传递了其他操作,然后执行它们。
$(function () {
$("#button1").click(function (evt) {
setTimeout(function () {
alert("button1 click");
if (typeof evt.originalEvent.detail == 'function') evt.originalEvent.detail(evt);
}, 3000);
});
});
答案 1 :(得分:1)
你可以这样做,
protected void dropdownlist1_SelectedIndexChanged(object sender, EventArgs e)
{
if (!String.IsNullOrEmpty(dropdownlist1.Text))
//Some code to remove the selected item from list so the user can not see it in the select list anymore
dropdownlist1.DataSource = myList;
dropdownlist1.DataBind();
dropdownlist2.DataSource = myList;
dropdownlist2.DataBind();
dropdownlist3.DataSource = myList;
dropdownlist3.DataBind();
//...
}