2013-05-28 27 views
1

我在尝试从父窗口执行函数时遇到了一些麻烦。JQUERY>从父窗口加载函数不起作用

在快速搜索这里在stackoverflow,我发现一些关于这个问题的线程,但没有一个有与我一起工作的解决方案。我真的不知道问题在哪里。

这里是测试代码我正尝试出:


(主页)

<html> 
<head> 
<script type="text/javascript" src="../_js/jquery-1.9.1.js"></script> 
<script> 
$(document).ready(function() { 
    function test(){ 
     alert("It Works"); 
    } 
    $('.loadpg').load('teste5b.php'); 
}); 
</script> 
</head> 

<body> 
<div class="loadpg" style="display:block;"></div> 
</body> 
</html> 

(网页加载)

<html> 
<head> 
<script type="text/javascript" src="../_js/jquery-1.9.1.js"></script> 
<script> 
$(document).ready(function() { 
    $('a').click(function(event){ 
     event.preventDefault(); 
     window.parent.$.test(); 
    }); 
}); 
</script> 
</head> 
<body> 
<a>Click Here</a> 
</body> 
</html> 

Basicaly,我需要这个,因为我编码模式窗口插件在我的应用程序中使用,我将使用此模式窗口来加载一个简短的窗体来更新我的数据库。模态窗口关闭时,将更新父窗口。

我需要加载父窗口函数来关闭模态窗口并在数据库更新后更新主页面的内容。

任何帮助将不胜感激。

谢谢!

回答

1

您的功能测试无法访问,因为它位于document.ready函数闭包内部。把它放在它之外,你就可以正常访问它:

// the parent page: 
$(document).ready(function() { 
    $('.loadpg').load('teste5b.php'); 
}); 

function test() { /* your function here */ } 

// inside your loaded page, you can call it like this: 
window.parent.test(); 
+0

非常感谢你mcpDESIGNS。现在它工作得很好!我试过一次把这个函数放在de准备好的地方,但是在加载的页面中,我试图运行这样的函数:window.parent。$。test()...你指出我的工作方式很好!谢谢!!! – RBR

+0

没问题,还有你叫它的方式。 'window.parent。$。test()'** $ **就好像你有一个叫做test的jQuery扩展(不是一个普通的窗口函数)。有点不同! –

+0

感谢您的提示!我在编码方面很新颖,这些小细节有时候会给我们带来一些麻烦......想给你一个投票,但是我没有那个声望=( – RBR

相关问题