我对 jQuery 以及可能是 javascript 的工作方式有一个基本的困惑。我一直有同样的问题,如何将参数传递给 jQuery 函数,以便它们的方法反过来可以使用这些变量调用函数。这是我最近的例子:
我正在使用全日历插件。如果我点击日历,它会触发一个回调方法“选择”。选择回调会自动给出某些参数:'startDate' 'endDate' 等。我想要的是打开一个 jQuery 对话框来收集其他信息,然后将新事件发布到服务器。沿着这条线:
$('calendar').fullcalendar({
...
select: function (startDate, endDate) {
$('#newEventPopup').dialog('open');
在 html 我有这样的东西:
<div title = 'How cool is this event?' id='newEventPopup'>
<select id='coolness'>
<option value = 'super'>Super!</option>
<option value = 'cool'>Cool</option>
<option value = 'dorky'>Dorky</option>
<option value = 'lame'>Lame!</option>
</select>
</div>
最后,我想在对话框中添加一个按钮,以将 fullcalendar 变量以及新变量发布到服务器:
var coolness = $('#coolness');
$('#newEventPopup').dialog({
modal: true,
autoOpen: false,
...
button: {
Save : function (){
$.ajax({
url: 'sample.php'
type: 'POST'
data: {
'start' : startDate,
'end' : endDate,
'coolness' : coolness
}
success: $('calendar').fullCalendar('refetchEvents')
}
}
}
});
我只是不明白如何构建它,或者在哪里放置代码,以便对话框“保存”按钮“知道”变量“startDate”、“endDate”和“coolness”的含义。我应该提一下,我最初是一名 Java 程序员,但我仍在为基于 JavaScript 函数的变量范围而苦苦挣扎。
我在很多这样的 jQuery 方法中都遇到过这个问题,我希望一个方法指向某个外部函数(例如调用 $.dialog 的选择回调方法),而后者又执行另一种方法(例如调用 $.ajax 的按钮回调方法)函数)但是如何将参数传递给 $.ajax 或 $.dialog 以便他们自己的方法可以使用这些值?
谢谢,