嘿,我想从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>
答案 0 :(得分:1)
由于您未能使用name
关键字定义var
,因此页面上的任何其他代码都可以访问它。
除了这种特殊情况,变量具有函数范围,因此在高于需要访问它的两个函数的级别定义var name...
。
答案 1 :(得分:0)
就在
之后 $(function () {
放
var name ;
解释:
在全局范围内创建变量,然后我们从一个函数中分配它,它可以在它旁边访问..
您将变量包装为文本!围绕它的qouts,这意味着这是一些文本而不是变量你应该将该行标记为标题:
'<%=GetUserName(' + name + ')%>'
这一行将意味着将引号之间的任何内容视为文本,当您命名时,只需获取它的值并将其附加到文本然后完成文本..
编辑:在这里等一下,你不能将javascript变量传递给服务器端的功能,除了ajax,但不是这样..你应该使用post或者把它发送到服务器然后从那里抓取它并解雇该功能并收回结果!