所以这个功能完美无缺,除了我还有六个按钮,并且不希望我的代码有大量的重复代码。对于自定义部分,我希望每个回调都不同,例如文本追加"请登录"如果用户不是管理员等,则会有所不同。我如何为每个按钮进行自定义?谢谢!
error: (xhr, ajaxOptions, thrownError) ->
console.dir arguments
console.log("*| Status ", xhr.status)
console.log("*| Error", thrownError)
console.log("*| Ajax", ajaxOptions)
if (not username? or not password?)
$('#data-text').empty()
$('#data-text').append ("""<h1>Please Log In</h1>""")
$('#input_username').fadeTo(100, 0.1).fadeTo(200, 1.0);
$('#input_password').fadeTo(100, 0.1).fadeTo(200, 1.0);
$('#header_user').css "background-color": "#d34242"
$('#header_password').css "background-color": "#d34242"
$('#data-text').css "background-color": "#d38642"
else
$('#data-text').empty()
$('#data-text').append ("""<h1>Failed Log In</h1>""")
$('#input_username').fadeTo(100, 0.1).fadeTo(200, 1.0);
$('#input_password').fadeTo(100, 0.1).fadeTo(200, 1.0);
$('#header_user').css "background-color": "#d34242"
$('#header_password').css "background-color": "#d34242"
$('#data-text').css "background-color": "#d38642"
请在CoffeeScript中保存代码
答案 0 :(得分:1)
在CoffeeScript中,您可以在函数中定义函数。不要让任何人告诉你CoffeeScript或JavaScript是一种功能语言。函数是第一类对象,对象可以封装其他对象。
error: (xhr, ajaxOptions, thrownError) ->
console.dir(arguments)
console.log("*| Status ", xhr.status)
console.log("*| Error", thrownError)
console.log("*| Ajax", ajaxOptions)
needsAGoodName = (msg) ->
$('#data-text').empty()
$('#data-text').append(msg)
$('#input_username').fadeTo(100, 0.1).fadeTo(200, 1.0)
$('#input_password').fadeTo(100, 0.1).fadeTo(200, 1.0)
$('#header_user').css("background-color": "#d34242")
$('#header_password').css("background-color": "#d34242")
$('#data-text').css("background-color": "#d38642")
if not username? or not password?
needsAGoodName("""<h1>Please Log In</h1>""")
else
needsAGoodName("""<h1>Failed Log In</h1>""")
我删除了if
周围的括号,并将它们添加到函数调用中以进行样式设置。无论哪种方式都可以。