$("div[id^='BlockHeading']").live("click", function () {
var text = $(this).text().toString();
if ($(this).next().css("display") == "none") {
$(this).empty();
$(this).html("" + text + " <img src='../img/109041_25936_16_chevron_collapse_icon.png' height='12' width='12' style='float:right'>")
iframeresize();
$(this).focus();
} else {
$(this).empty();
$(this).html("" + text + " <img src='../img/109041_25936_16_chevron_collapse_iconDown.png' height='12' width='12' style='float:right'>")
iframeresize();
$(this).focus();
}
jQuery(this).next(".content").slideToggle(100);
});
我试图在事件发生后调整IFRAME
的大小。以上显示了一个这样的事件。但是,问题出现在函数iframeresize()
中 - 如果我在调用它之前触发alert()
,或者在函数本身内部调用它,并且它在debug-window
中起作用。萤火虫 - 但除非alert()
存在,否则根本不起作用......
我错过了什么?
修改
iframeresize()
的代码:
function iframeresize() {
$("#frame1", parent.document).css("height", $("#form1").height() + 100);
$("#container", parent.document).css("height", $("#form1").height() + 100);
}
答案 0 :(得分:0)
尝试从超时调用它,让其余代码继续执行。
...
setTimeout(iframeresize, 10);
...
答案 1 :(得分:0)
我删除了$(this).empty()
,因为无论如何你都要为元素分配新的html。
测试此代码,证明它有效(http://jsfiddle.net/Zt3eP/17/)
因此,代码的某些其他部分可能存在问题,而不是您显示的内容。
$("div[id^='BlockHeading']").live("click", function () {
var text = $(this).text().toString();
if ($(this).next().css("display") == "none") {
$(this).html("" + text + " <img src='../img/109041_25936_16_chevron_collapse_icon.png' height='12' width='12' style='float:right'>")
iframeresize();
$(this).focus();
} else {
$(this).html("" + text + " <img src='../img/109041_25936_16_chevron_collapse_iconDown.png' height='12' width='12' style='float:right'>")
iframeresize();
$(this).focus();
}
$(this).next(".content").slideToggle(100);
});
function iframeresize(){
console.log('resize');
}