0
$("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()在调用它之前触发 an ,或者在函数本身中调用它......并且它在 Firebug 中起作用- 但除非存在,debug-window否则根本不起作用......alert()

我错过了什么?

编辑 代码iframeresize()

function iframeresize() { 
     $("#frame1", parent.document).css("height", $("#form1").height() + 100);
     $("#container", parent.document).css("height", $("#form1").height() + 100); 
}
4

2 回答 2

0

尝试从超时调用它并让其余代码继续执行。

...
setTimeout(iframeresize, 10);
...
于 2012-12-02T10:00:39.810 回答
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');
}
​
于 2012-12-05T15:48:04.830 回答