coffeescript jQuery -如何重构这个(新手)方法
coffeescript jQuery - how to refactor this (noob) approach?
在开始学习一些编码后,我在rails4应用程序中使用bootstrap进行了这个(非常丑陋,非DRY)星级评级切换。我已经完成了codesschool coffeescript教程,但似乎ruby对我来说更容易学习。
如果有人能给我一点提示,告诉我"专业人士"应该如何写这个函数?非常感谢。
@starSwitch = ->
label_1 = $("label#1")
label_2 = $("label#2")
label_3 = $("label#3")
label_4 = $("label#4")
label_5 = $("label#5")
label_1.click ->
label_1.children("i").addClass("icon-star colorfull").removeClass("icon-star-empty")
label_2.children("i").addClass("icon-star-empty").removeClass("icon-star colorfull")
label_3.children("i").addClass("icon-star-empty").removeClass("icon-star colorfull")
label_4.children("i").addClass("icon-star-empty").removeClass("icon-star colorfull")
label_5.children("i").addClass("icon-star-empty").removeClass("icon-star colorfull")
label_2.click ->
label_1.children("i").addClass("icon-star colorfull").removeClass("icon-star-empty")
label_2.children("i").addClass("icon-star colorfull").removeClass("icon-star-empty")
label_3.children("i").addClass("icon-star-empty").removeClass("icon-star colorfull")
label_4.children("i").addClass("icon-star-empty").removeClass("icon-star colorfull")
label_5.children("i").addClass("icon-star-empty").removeClass("icon-star colorfull")
label_3.click ->
label_1.children("i").addClass("icon-star colorfull").removeClass("icon-star-empty")
label_2.children("i").addClass("icon-star colorfull").removeClass("icon-star-empty")
label_3.children("i").addClass("icon-star colorfull").removeClass("icon-star-empty")
label_4.children("i").addClass("icon-star-empty").removeClass("icon-star colorfull")
label_5.children("i").addClass("icon-star-empty").removeClass("icon-star colorfull")
label_4.click ->
label_1.children("i").addClass("icon-star colorfull").removeClass("icon-star-empty")
label_2.children("i").addClass("icon-star colorfull").removeClass("icon-star-empty")
label_3.children("i").addClass("icon-star colorfull").removeClass("icon-star-empty")
label_4.children("i").addClass("icon-star colorfull").removeClass("icon-star-empty")
label_5.children("i").addClass("icon-star-empty").removeClass("icon-star colorfull")
label_5.click ->
label_1.children("i").addClass("icon-star colorfull").removeClass("icon-star-empty")
label_2.children("i").addClass("icon-star colorfull").removeClass("icon-star-empty")
label_3.children("i").addClass("icon-star colorfull").removeClass("icon-star-empty")
label_4.children("i").addClass("icon-star colorfull").removeClass("icon-star-empty")
label_5.children("i").addClass("icon-star colorfull").removeClass("icon-star-empty")
$ -> starSwitch
你可以这样做:
@starSwitch = ->
$("label").click ->
$("label").addClass("icon-star colorfull").removeClass("icon-star-empty")
$(this).nextAll("label").addClass("icon-star-empty").removeClass("icon-star colorfull")
如果页面上有其他标签,则在星形标签上添加一个类(例如stars
),然后将代码更改为$("label.stars").click
和nextAll("label.stars")
。
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 数组在递归方法中设置为null
- 打破承诺链的好方法是什么
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 使用“;这个“;JavaScript原型方法中的关键字
- 序列化数据属性中对象的最可靠方法
- 使用Objective-C的JavaScript注入方法
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 有没有一种方法可以防止img get请求使用css或js发生
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- toBoolean方法类似于toString
- 如何在单击复选框后调用控制器方法
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 递归使用 eval() 是检查程序执行的好方法吗?
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- toLocaleDateString和toLocaleString方法不尊重机器时区
- I'我是d3的新手,有简单的方法吗
- coffeescript jQuery -如何重构这个(新手)方法
- 测试新手,我该如何用Mocha, Chai, Enzyme和Sinon测试这种方法呢?