$('#elmLeft').button({
icons: {
primary: "ui-icon-triangle-1-w"
},
text: false
});
$('#elmRight').button({
icons: {
primary: "ui-icon-triangle-1-e"
},
text: false
});
$('#elmTop').button({
icons: {
primary: "ui-icon-triangle-1-n"
},
text: false
});
$('#elmBottom').button({
icons: {
primary: "ui-icon-triangle-1-s"
},
text: false
});
1
A
回答
4
function setButton($element, icon) {
$element.button({
icons: {
primary: icon
},
text: false
});
}
setButton($('#elmLeft'), "ui-icon-triangle-1-w");
setButton($('#elmRight'), "ui-icon-triangle-1-e");
setButton($('#elmTop'), "ui-icon-triangle-1-n");
setButton($('#elmBottom'), "ui-icon-triangle-1-s");
另外,您可以只取選擇,而不是一個jQuery元素,只有字符串的最後一個字母,但似乎有點小題大做。
0
我敢肯定,它可以縮短,但不是以一種優雅的方式,據我所知,簡潔將以可理解性爲代價。
1
你可以把一個對象的圖標不同,並用它來改變primary
:
var icons = {
elmLeft: 'w',
elmRight: 'e',
elmTop: 'n',
elmBottom: 's'
};
$('#elmLeft, #elmRight, #elmTop, #elmBottom').each(function() {
$(this).button({
icons: { primary: 'ui-icon-triangle-1-' + icons[this.id] },
text: false
});
});
我不知道你是否會考慮足夠乾燥,雖然保證了額外的複雜性。如果你有上的按鈕一類,那麼你可以把它用清潔劑:
$('.some_class').each(function() {
// As above.
});
或者你可以將函數添加到icons
保持id
和圖標信息一起:
var icons = {
elmLeft: 'w',
elmRight: 'e',
elmTop: 'n',
elmBottom: 's',
button: function(id) {
$('#' + id').button({
icons: { primary: 'ui-icon-triangle-1-' + this[id] },
text: false
});
}
};
icons.button('elmLeft');
icons.button('elmRight');
icons.button('elmTop');
icons.button('elmBottom');
還是拿這一步:
var buttons = {
ids: {
elmLeft: 'w',
elmRight: 'e',
elmTop: 'n',
elmBottom: 's'
},
create: function() {
for(id in this.ids) {
if(this.ids.hasOwnProperty(id)) {
$('#' + id').button({
icons: { primary: 'ui-icon-triangle-1-' + this.ids[id] },
text: false
});
}
}
}
};
buttons.create();
你可以做上面有一個自動執行的功能,如果你想要一個更清潔的命名空間:
(function() {
var ids = {
elmLeft: 'w',
elmRight: 'e',
elmTop: 'n',
elmBottom: 's'
};
for(id in ids) {
if(ids.hasOwnProperty(id)) {
$('#' + id').button({
icons: { primary: 'ui-icon-triangle-1-' + ids[id] },
text: false
});
}
}
})();
相關問題
- 1. 使重複代碼更短
- 2. IF中的重複代碼塊...我如何使它更短?
- 3. 我們可以使用Material UI與引導4
- 4. 我們可以縮短我寫在js中的jQuery代碼嗎?
- 5. CKEditor 4短代碼替換
- 6. 有人可以看看我的代碼,也許使它更短
- 7. 爲什麼tableview中的代碼每行重複4次?
- 8. 4.0(8A293)我們可以恢復到iOS 4
- 9. Angular 4 - 更改點擊事件按鈕
- 10. 爲什麼我的評論每次重複3次或4次?
- 11. 我可以重新編碼循環UIImageView以獲得更短的代碼嗎?
- 12. jQuery UI與MVC 4
- 13. 問題重複4倍,浮動不可調用,代碼錯誤
- 14. 我可以使用jquery-ui按鈕而不閃爍嗎?
- 15. 我可以縮短我的代碼嗎?
- 16. 我可以通過按鈕在Rails 4中提交參數嗎?
- 17. 我可以在Silverlight 4的RichTextBox中放置一個按鈕嗎?
- 18. 縮短重複代碼
- 19. 我們可以使用WF 4中的`使用'塊嗎?
- 20. 我可以重複使用jQuery UI中的CSS文件嗎?
- 21. 分離按鈕,使它們不重疊
- 22. 重複的問題,可以驗證我的模型? [Rails 4]
- 23. 我可以改進這個jQuery代碼重複嗎?
- 24. 我如何重構此代碼以縮短它?
- 25. JQuery UI - 更改按鈕類
- 26. jQuery縮短代碼
- 27. 雖然循環重複4次
- 28. 摺疊按鈕4
- 29. jquery代碼一次但不重複
- 30. 我可以縮短這段代碼嗎?
謝謝+1。但我認爲戴維的答案更實際。 – Pinkie 2011-05-21 21:43:59
+ 1/-1爲過度工程(所以淨0,很酷,但留下代碼的讀者認爲跆拳道應該這樣做?) – Davy8 2011-05-21 22:29:34
@ Davy8:在實踐中,我會用Pinkie的原始和重新格式化它使查找差異更容易(並可能添加評論指出差異在哪裏)。但有時我覺得好玩。 – 2011-05-22 00:41:28