变量设置不会形成元素

时间:2011-09-30 04:29:05

标签: javascript jquery jquery-mobile

我有一个名为'name'的全局变量,当用户点击按钮时,查询文本框内容并将'name'设置为内容,然后将名称打印在不同的jquery页面中。

我的问题是名称永远不会被打印为它所设置的名称,它始终打印为最初设置的名称。

这是我的回调函数:

    <script type="text/javascript">
        $("#finalize").click(function(e)
        {
            g_name = "BLAH";
            return true;
        });
    </script>

为简单起见,我在点击时将名称设置为'BLAH'。

g_name是全局声明的(即在函数范围之外)。

在另一个jquery页面中我有:

document.write('<label for="testname">Name:</label>');
                document.write('<input type="text" name="testname" id="testname" value="');
                document.write(g_name)
                document.write('"/>');

g_name始终显示为其他内容,无论g_name最初是否已启用。

单击回调设置全局变量的按钮也会转换页面,如果这会产生影响......

编辑:

好的,我已经弄清楚出了什么问题,全局变量在设置之前就被写下了。现在我正在尝试这样做:

        <script type="text/javascript">
            $('#confirmscreen').bind('pageshow',function() 
            {
                document.write('<label for="testname">Name:</label>');
                document.write('<input type="text" name="testname" id="testname" value="');
                document.write(g_name);
                document.write('"/>');

                document.write(g_phonenumber);
            });
        </script>

然而,jquery似乎不喜欢在'pageshow'事件中使用document.write,有没有办法让这个工作,也就是说,当页面显示时写出g_name,而不是当网站是加载?

2 个答案:

答案 0 :(得分:1)

使用javascript方法 document.createElement()而不是使用document.write,并使用 setAttribute()方法将值和属性分配给创建的元素。

希望这会对你有所帮助。

答案 1 :(得分:0)

如果该按钮导致页面位置发生变化,那么您的全局变量将被重置,如果有意义,则不会在第二页上显示。在javascript中,全局变量是每个窗口,如果窗口位置发生变化,则为新的全局变量集。