Jquery在函数之间传递参数

时间:2013-01-27 22:30:54

标签: javascript jquery html css

嘿,我想从jquery中的函数传递一个参数,但我不能让它工作。我究竟做错了什么?我想将点击功能中的“名称”传递给对话框功能,以防止重复代码

更新:我在函数后面定义了名称。但是我仍然不能像这样传递它<%= GetUserName(name)%>

更新2 jsFiddle链接http://jsfiddle.net/bbKw8/

            <div id="dialog-block" >
                <p>
                    <b>Friends List:</b>
                    <% =GetFriends(0) %>
                </p>
            </div>
            <div id="Div1">
                <p>
                    <b>Friends List:</b>
                    <% =GetFriends(0) %>
                </p>
            </div>
            <script type="text/javascript">

                // the jQuery document ready handler
                $(function () {
                    var name;
                    // create our dialog
                    $('#dialog-block').dialog({
                        title: '<%=GetUserName(name)%>',
                        autoOpen: false,
                        width: 400,
                        buttons: {
                            "Close": function () {
                                closeDialog($(this))
                            }
                        }
                    });

                    // the button to open the dialog
                    $('#user0chair,#apDiv1').click(function (event) {
                        if (this.id == 'user0chair') {
                            $('#dialog-block').dialog('open');
                            name = 1;
                        }
                        else if (this.id == 'user1chair') {
                            $('#dialog-block').dialog('open');
                        }
                    });

                });

                function closeDialog(elem) {
                    elem.dialog("close");
                }
            </script>

2 个答案:

答案 0 :(得分:1)

由于您未能使用name关键字定义var,因此页面上的任何其他代码都可以访问它。

除了这种特殊情况,变量具有函数范围,因此在高于需要访问它的两个函数的级别定义var name...

Why you should use 'var'

答案 1 :(得分:0)

就在

之后
 $(function () {

var name ;

解释:

在全局范围内创建变量,然后我们从一个函数中分配它,它可以在它旁边访问..

您将变量包装为文本!围绕它的qouts,这意味着这是一些文本而不是变量你应该将该行标记为标题:

'<%=GetUserName(' + name + ')%>'

这一行将意味着将引号之间的任何内容视为文本,当您命名时,只需获取它的值并将其附加到文本然后完成文本..

编辑:在这里等一下,你不能将javascript变量传递给服务器端的功能,除了ajax,但不是这样..你应该使用post或者把它发送到服务器然后从那里抓取它并解雇该功能并收回结果!