我的代码如下。我期望configureMission()
内的代码在运行mapSurface
之前完成运行。这似乎没有发生。Coffeescript在第一个完成执行之前运行第二个功能
missionCommands = "" # you don't have a mission yet
$('#startExploration').click -> # Set #missionControl as input for game configuration
configureMission()
mapSurface()
configureMission =->
$('#MissionControl').on "submit", ->
# cool helper function shamelessly pinched from http://jsfiddle.net/sxGtM/3/
$.fn.serializeObject = function() # not shown
missionCommands = JSON.stringify($('form').serializeObject())
return false #stops click event from firing
mapSurface =->
console.log('map')
console.log(missionCommands)
我注意到,如果我提交的形式第二次,missionCommands
变量已经与JSON数据更新,所以看来表单数据已被处理,但是这之后第二个是发生功能已运行。
map login.js:60
login.js:61
map login.js:60
{"xMaximum":"","yMaximum":"","xCoord":["iuoiuyi",""],"yCoord":["",""],"orientaiton":["",""]} login.js:61
我可以把它通过移动configureMission
函数内mapSurface
功能工作,但是这似乎是不好的形式。我想知道,是否有更正确的模式可以用来实现将表单数据处理成json的预期结果,将其设置为变量并将该变量传递给第二个函数。
@Hiroto感谢您的文法。它已经很晚了:) – happilyUnStuck
'configureMission'只是绑定一个提交处理程序(每次调用时都会有一个新的处理程序)。所以它会运行,但在提交之前不会有任何可见的效果。我错过了什么? –
@ muistooshort我用.on代替.live(尚未测试过),因为表单在提交之前会被DOM操纵。 ??所需的功能是点击事件与表单输入相关联,用户输入“任务”的信息,当表单提交时,此任务数据将在画布元素中进行动画,以绘制课程。我需要使用'mapSurface'函数中的'configureMission'函数中的语义化数据,而且我需要'submit'事件来处理表单数据并将其显示在页面上。那有意义吗? – happilyUnStuck