- 1
- 2
- 3
- 4
- 5
$('div').each(function (i) {
if(i==0)$(this).css('display', 'none');
else
for(j=0;j<=1;j++)break;
});
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+163
$('div').each(function (i) {
if(i==0)$(this).css('display', 'none');
else
for(j=0;j<=1;j++)break;
});
Вместо $("div:first").hide();
+160
// create folder element
var itm = $('<li class="DocListItem TypeFolder hover" style="display:none;">
<div class="ItemInfo"><span class="itmFolder">Папка</span></div>
<a rel="'+result.data.id+'" class="ItemLink" href="'+$('#currentFolderId').attr('href')+result.data.name+'/">'+result.data.name+'</a>
</li>');
// bind handlers
itm = DocumentsListItemHoverBind(itm.click(DocumentsListItemClick).dblclick(OpenSelectedObject)).find('.ItemLink:first').click(OpenSelectedObject).parent();
// display
itm.insertAfter('#documentsList .UpLevelItem:first').fadeIn('slow');
Сок, конечно же, в bind handlers.
+145
function parseHTML(text)
{
var t = text;
var a = new Array();
var b = new Array();
var cur = 0;
var waiting_open_tag = true;
var last_cut = 0;
for (var i = 0; i < t.length; i++)
{
cur = t.charAt(i);
if (waiting_open_tag)
{
if (cur == '<')
{
a.push(t.substring(last_cut, i));
waiting_open_tag = false;
last_cut = i;
}
}
else
{
if (cur == '>')
{
a.push(t.substring(last_cut, i+1));
waiting_open_tag = true;
last_cut = i+1;
}
}
if (i == t.length-1)
{
a.push(t.substring(last_cut, i+1));
}
}
// now reparse DOT"."
for (i = 0; i < a.length; i++)
{
y = a[i];
last_cut = 0;
for (z = 0; z < y.length; z++)
{
cur = y.charAt(z);
if (z == 0)
{
if ((cur == '<') || (cur == '&') || (cur == '\n'))
{
z = y.length + 981;
b.push(y.substring(last_cut, z+1));
continue;
}
}
if (cur == '.')
{
b.push(y.substring(last_cut, z+1));
last_cut = z+1;
}
if (z == y.length-1)
{
b.push(y.substring(last_cut, z+1));
}
}
}
return b;
}
Эта функция разбивает строку на элементы массива. Граница разделения - это HTML tags ( < >) и точка (.)
Функция сделана для подготовки текста к автоматическому переводу в Гугле - кто работал тот знает что запихнув большую строку ничего не получите.
Я уже знаю ваши сопливые комментарии: RegExp. Собственно по этому это можно считать говнокодом ибо изобретен велосипед (но такого велосипеда в интернете нет). Ну а кто не Noob, прошу предоставить рабочий RegExp.
+161
$(document).ready(function () {
$("#GridView1 INPUT[type='checkbox']").click(
function () {
var colIndex = $(this).parent().parent().prevAll().length;
$('.' + $(this).parent().attr("class") + ' input[type="checkbox"]').each(function () {
if ($(this).parent().parent().prevAll().length == colIndex)
$(this).attr('checked', false);
});
$(this).attr('checked', true);
});
});
взаимоисключающие чекбоксы в колонках таблицы
+147
var n = Math.abs(((date2 - date1) / 86400000) + 1);
var frac = n - Math.floor(n);
if (frac > 0.5) {
n = Math.ceil(n);
} else if (frac < 0.5 && frac.toPrecision(2) != 0) {
n = Math.floor(n);
n--;
}
n++;
Мой говнокод.
Задача: найти количество дней между двумя датами, включая сами эти даты. Время в датах сброшено в 0
Фишка в том "(date2 - date1) / 86400000) + 1", не работает когда есть перевод часов между двумя датами.
И вот такое говно я написал, которое по некоторым дням НЕ РАБОТАЕТ.
переписал вот так:
var n = Math.abs(date2 - date1);
n /= 3600000;
var mod = n % 24;
if (mod == 23) {
n++;
} else if (mod == 1) {
n--;
}
n /= 24;
n++;
теперь не важно сколько переводов часов прошло между датами: 0, 1, 2 или 5.
По поводу говнокода:
За такой frac на авторе надо зарабатывать фраг!
Oleg_quadro: автор, убей себя головой о клаву:
Oleg_quadro: "vb fgrbfvgr bgfvrt rtuijnikjikni56trg5rt6g45t6rgyh hnjunh ujuuuuuuuuuuuuuuuuuuuy"
+163
function GetPath(path){
return path;
}
Коротко и ясно! Единственный метод в модуле.
+160
TINY.accordion=function(){
function slider(n){this.n=n; this.a=[]}
slider.prototype.init=function(t,e,m,o,k){
var a=T$(t), i=s=0, n=a.childNodes, l=n.length; this.s=k||0; this.m=m||0;
for(i;i<l;i++){
var v=n[i];
if(v.nodeType!=3){
this.a[s]={}; this.a[s].h=h=T$$(e,v)[0]; this.a[s].c=c=T$$('div',v)[0]; h.onclick=new Function(this.n+'.pr(0,'+s+')');
if(o==s){h.className=this.s; c.style.height='auto'; c.d=1}else{c.style.height=0; c.d=-1} s++
}
}
this.l=s
};
slider.prototype.pr=function(f,d){
for(var i=0;i<this.l;i++){
var h=this.a[i].h, c=this.a[i].c, k=c.style.height; k=k=='auto'?1:parseInt(k); clearInterval(c.t);
if((k!=1&&c.d==-1)&&(f==1||i==d)){
c.style.height=''; c.m=c.offsetHeight; c.style.height=k+'px'; c.d=1; h.className=this.s; su(c,1)
}else if(k>0&&(f==-1||this.m||i==d)){
c.d=-1; h.className=''; su(c,-1)
}
}
};
function su(c){c.t=setInterval(function(){sl(c)},20)};
function sl(c){
var h=c.offsetHeight, d=c.d==1?c.m-h:h; c.style.height=h+(Math.ceil(d/5)*c.d)+'px';
c.style.opacity=h/c.m; c.style.filter='alpha(opacity='+h*100/c.m+')';
if((c.d==1&&h>=c.m)||(c.d!=1&&h==1)){if(c.d==1){c.style.height='auto'} clearInterval(c.t)}
};
return{slider:slider}
}();
http://installauto.ru/ajax/script.js
чья-то реализация аккордиона. и почему же оно хреново в ИЕ пашет?
+154
http://vkontakte.ru/
<noscript><meta http-equiv="refresh" content="0; URL=/badbrowser.php"></noscript>
http://vkontakte.ru/badbrowser.php
<script type="text/javascript">
<!--
//window.checkbrowser = true;
if (window.checkbrowser) {
try {
if (new XMLHttpRequest()) {
location.replace('/');
}
} catch(e) {
try {
if (new ActiveXObject('Msxml2.XMLHTTP')) {
location.replace('/');
}
} catch(e) {}
try {
if (new ActiveXObject('Microsoft.XMLHTTP')) {
location.replace('/');
}
} catch(e) {}
}
}
-->
</script>
Вот так суровые вконтактостроители отправляют на йуг пользователей NoScript.
+158
function checkboxHandler(e) {
var el = e.target;
if(el.className == "checked") {
el.className = "unchecked";
showThumbs(el, false);
}
else {
el.className = "checked";
showThumbs(el, true);
}
}
function showThumbs(el, stat) {
if(stat)
addThumbs(el.id);
else
removeThumbs(el.id);
}
+145
function eval()
{
this.obj = eval(obj);
}
выкопал из сорцов игрушки...