Fancybox - 在子fancybox中设置父窗口的全局变量

时间:2011-08-18 20:19:36

标签: javascript jquery ruby-on-rails fancybox

以下是手头的问题:

使用Ruby on rails进行整体开发;但是,视图主要由html和jQuery组成。目前,我进行了设置,以便当用户输入文本字段时,他们可以在其下方按下一个小“建议”按钮,这会打开一个Fancybox,其中有一个由Google Suggest API提供的有用搜索字词列表。这一切都已建立并正常运行。现在我想把它带到下一步,从Fancybox内部,用户可以点击其中一个建议,它将替换父窗口中最初输入的短语。可悲的是我还不擅长使用AJAX,所以我试图通过javascript来做到这一点。这就是我到目前为止所做的:

在父窗口中:

<script type="text/javascript">
    $(document).ready(function() {
       var $_returnvalue = false;
       $('.suggest_link').fancybox({
          onClosed: function(){
          alert($_returnvalue);
          if ($_returnvalue != false)
          {
            // I will be setting the textbox value here.
          }
       }
    });
</script>

在fancybox内部渲染的局部视图中:

<script type="text/javascript">
$(document).ready(function() {
    var $_fancyvalue = false;
     $(".suggestion").click(function(){
        alert(parent.$_returnvalue);
        parent.$_returnvalue = $(this).text();
        $.fancybox.close();
     });
});
</script>

对不起,如果这篇文章有什么奇怪的话。这是我第一次在这里提问。

1 个答案:

答案 0 :(得分:1)

在父窗口的全局范围中定义var $_returnvalue。试试这个它会正常工作。

var $_returnvalue = false;

$(document).ready(function() {
       $('.suggest_link').fancybox({
          onClosed: function(){
          alert($_returnvalue);
          if ($_returnvalue != false)
          {
            // I will be setting the textbox value here.
          }
       }
    });