Я понимаю, нет предела совершенству, но возможно ли ещё усовершенствовать метод?
|
Цитата:
|
Цитата:
|
app.ratingTooltipTpl = function (e) { var res = "<div id='set-rating" + e.chainId + "'>"; var rate = e.rating; var spanArr = []; for (var i = 1; i <= 5; ++i) { spanArr.push("<span rate=" + i + " chainId=" + e.chainId + " class='action-tooltip rating-empty' onclick='setRating(this)'></span>"); } var a = "empty", b = "yellow-star" switch (rate) { case 1: spanArr[0].replace(a, b); break; case 2: spanArr[0].replace(a, b); spanArr[1].replace(a, b); break; case 3: spanArr[0].replace(a, b); spanArr[1].replace(a, b); spanArr[2].replace(a, b); break; case 4: spanArr[0].replace(a, b); spanArr[1].replace(a, b); spanArr[2].replace(a, b); spanArr[3].replace(a, b); break; case 5: spanArr[0].replace(a, b); spanArr[1].replace(a, b); spanArr[2].replace(a, b); spanArr[3].replace(a, b); spanArr[4].replace(a, b); break; } var spans = spanArr.join(); res += spans; res = res + "</div></br>Баллы:<span id='rating-rate" + e.chainId + "'>"+rate+"</span>"; return res; }; смотри сколько буков я тебе сократил! :dance: |
Цитата:
app.ratingTooltipTpl = function (e) { var res = "<div id='set-rating" + e.chainId + "'>"; var rate = e.rating; var spanArr = []; var val=" chainId=" + e.chainId + " class='action-tooltip rating-empty' onclick='setRating(this)'></span>"; for (var i = 0; i < 5; ++i) { spanArr[i]="<span rate=" + (i+1) + val; } for (i=0; i<rate; i++) { spanArr[i].replace("empty", "yellow-star"); } var spans = spanArr.join(""); res += spans; res = res + "</div></br>Баллы:<span id='rating-rate" + e.chainId + "'>"+rate+"</span>"; return res; }; Не тестил конечно... |
смотри сколько буков я тебе сократил!
Круто конечно, но всё равно портянка... |
Есть такой вариант:
app.ratingTooltipTpl = function (e) { var div = $("<div></div>").attr({ "id": "set-rating" + e.chainId }); var starSpan = $("<span></span>").attr({ "rate": 0, "chainId": e.chainId, "class": "action-tooltip rating-empty", "onclick": "setRating(this)" }); var spanArr = []; for (var i = 1; i <= 5; ++i) { spanArr.push(starSpan.clone().attr("rate", i)); } var spans = spanArr.join(""); div.append(spans); var rateSpan = $("<span></span>").attr({ "id": "rating-rate" + e.chainId }); div.append("</br>Баллы:"); div.append(rateSpan); return div; }; Но вот это не работает: var spans = spanArr.join(""); div.append(spans); И смены классов нет |
Или вообще так...
app.ratingTooltipTpl = function (e) { var res = "<div id='set-rating" + e.chainId + "'>"; for (var i = 0; i < 5; ++i) { var cls='rating-'+(i<e.rating)? 'yellow-star': 'empty'; res+="<span rate=" + (i+1) + " chainId=" + e.chainId + " class='action-tooltip "+cls+"' onclick='setRating(this)'></span>"; }; res +="</div></br>Баллы:<span id='rating-rate" + e.chainId + "'>"+e.rating+"</span>"; return res; }; |
ksa,
Немного подправил, спасибо, работает! app.ratingTooltipTpl = function (e) { var res = "<div id='set-rating" + e.chainId + "' class='set-rating'>"; for (var i = 0; i < 5; ++i) { var cls = 'rating-' + ((i < e.rating) ? 'yellow-star' : 'empty'); res += "<span rate=" + (i + 1) + " chainId=" + e.chainId + " class='action-tooltip " + cls + "' onclick='setRating(this)'></span>"; }; res += "</div></br>Баллы:<span id='rating-rate" + e.chainId + "'>" + e.rating + "</span>"; return res; }; |
ksa,
А такой вариант возможно доработать? app.ratingTooltipTpl = function(e) { var div = $("<div></div>").attr({ "id": "set-rating" + e.chainId, "class": "set-rating" }); var starSpan = $("<span></span>").attr({ "rate": 0, "chainId": e.chainId, "class": "rating-empty", "onclick": "setRating(this)" }); for (var i = 1; i <= 5; ++i) { var span = starSpan.clone(); span.attr("rate", i); span.attr("class", "rating-" + ((i < e.rating) ? "yellow-star" : "empty")); div.append(span); } var rateSpan = $("<span></span>").attr({ "id": "rating-rate" + e.chainId }); div.append("</br>Баллы:"); div.append(rateSpan); return div; } |
Часовой пояс GMT +3, время: 10:25. |