使用innerhtml在iframe回发后重新命名jquery



hia

我正在尝试一些jquery的东西。简单,基本上:这是一个带有表格的页面。我有一个简单的jquery,它在onmouseover/out的tr上创建了一个效果,并在单击一行时进行了切换。单击一行也会向iframe发出http请求,iframe会生成两个新表,并使用innerHTML javascript将它们写回父窗口。

从iframe中创建的新表使用相同的jquery来实现onmouseover/out效果。但这不起作用,因为我假设$(document(.ready(function(已经过了运行时间,并且没有"处理"新插入的表。

如何从iframe中重新运行$(document(.ready(function(?简单地将javascript写回父级是不起作用的,因为它没有被执行(也可以用简单的"alert"进行测试(。我已经把所有jqueryinit的东西放到了一个单独的函数中:

$(document).ready(function(){
    initjquery()
});
function initjquery(){
        $("#jqtbody tr").bind( "mouseover", function(e){
            $(this).toggleClass("highlighted");
        });
        $("#jqtbody tr").bind( "mouseout", function(e){
            $(this).toggleClass("highlighted");
        });
    }

查看图片以获得一些视觉"帮助"(对不起,我是新来的,我还不允许在这里嵌入图片(http://beta2.nextron.ch/temp/unibas.jpg

谢谢你的帮助!

lukas

尝试执行以下操作:

  • 1( 创建占位符以在请求时容纳动态表
  • 2( 当您触发http请求时,请确保只返回表的完整html(不需要iframes(
  • 3( 当请求到达页面(表的html源(时,将此表放入带有$(placeholder(.append(htmlOfTheDynamicTable(的占位符中

通过使用这种方法和append((,jQuery也会自动加载该元素的所有事件。如果使用直接的innerHTML(或者,在jQuery样式中,使用$(target(.html(html((,则"应该"附加到动态加载的html的事件将不起作用。

最新更新