-2

嘿,我想从 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>
4

2 回答 2

1

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

除了这种特殊情况,变量具有函数作用域,因此var name...在比需要访问它的两个函数更高的级别定义 a 。

为什么你应该使用'var'

于 2013-01-27T22:40:29.477 回答
0

就在之后

 $(function () {

var name ;

解释 :

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

您将变量包装为文本!周围有 qouts ,这意味着这是一些文本而不是变量,您应该将行更改为标题:

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

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

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

于 2013-01-27T22:40:51.037 回答