Дядя Саша
-
Posts
210 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Store
Posts posted by Дядя Саша
-
-
>> Да, надо бы проводить поиск в массиве до вызова new Calendar()
Вроде я это и написал? Или где мне хранить уже созданные календари? Ф-ия ж должна где то искать уже созданные экземпляры, вот они и лежат в массиве (в глобальной переменной calendars). Только реализовано у меня криво, получается. Ибо проверка на существующий инстанс у меня выполняется уже после получения нового (в нем же, в новом и осуществляется), а надо бы вынести ее отдельно.
Но я думаю не забить ли мне на это. Пускай себе создается, памяти что ли жалко, еще и чужой
Поэтому и спрашиваю, сильно ли это хреново для такой задачи?
И интересно куда он девается потом, если нигде не используется.
-
Да, надо бы проводить поиск в массиве до вызова new Calendar(), это было бы правильно, а так сильно плохо?
-
Фигасе... при каждом клике у вас создается новый инстанс, который нифига не содержит изменения в старом...
Нельзя использовать new, лучше написать функцию, которая ноде присваивала бы как поле экземпляр класса, если он еще не создан, или использовала бы его, если уже создан.
Так и есть вызывается new Calendar(...), есть массив calendars, в нем ведется поиск на наличие существующего, если есть — то он просто немного обновляется (если надо), а если нет — создается новый
http://imagebin.ca/img/2QyWbq86.png — вот тут результат (:
Мда, наверно все равно возвращается целый экземпляр... Ф-ия initialize проверяет на наличие существующего календаря. Мда, задумался я
Ну, он не большой, никуда не присваивается и сразу летит в пи..ду. Надо подумать, переделывать лень (:
-
var Calendar = Class.create();
Calendar.prototype = {
initialize: function(field, options, e) {
...
this.options = options;
this.date = field.value === "" ? new Date() : Date.prototype.parseTime(field.value);
...
},
newDate: function() {
var date ...
...
date.MONTH = $w(this.options.months); // присылается с сервера в вызове каждого нового экхемпляра.
date.YEARS = $R(this.options.years_range[0], this.options.years_range[1]); // аналогично
date.HOURS_INCLUDE = this.options.date_format.indexOf("%H") > 0 ? true : false;
....
return date;
}
}<input class="input_button_default" id="date_select_button_cf2134386b36090f5b09624143e6c80922cc1673"
onclick="new Calendar(this, $('edit_start_date'),
{
"months": "January February March April May June July August September October November December",
"minutes_equal": "5",
"weeks": "Monday Tuesday Wednesday Thursday Friday Saturday Sunday",
"years_range": [2009, 2010],
"seconds_equal": "5",
"weekdays": "S M T W T F S",
"select_class": "input_select_default",
"first_day": 0,
"date_format": "%B, %d %Y @ %H:%M",
"hours_equal": "1"
},
event);" style="display: none" type="button" value="Select start Date" />Да и вся эта информация просто не нужна за пределами моего класса, кто знает сколько еще экземпляров даты будет получаться в документе, зачем каждому этот мусор.
-
Более четко вопросы надо формулировать.
А чем прототипирование не устраивает?
Пасиб, с eval я и сделал , думалось что есть в жс какой то более прямой способ, увы, все указывает на убогость языка.
С прототипом не катит потому что при каждом получении экземпляра класса прототип прийдется переопределять, это еще пол беды, но может быть ситуация когда работают сразу два экземпляра, они хранят разные данные и получается ппц. Из-за всех таких вот особенностей не захотелось определять прототп и все что мне надо вешать на мой собственный экземпляр.
-
Мда, и для чего я распинался...
На самом деле я знаю как передаются параметры функции, я не знаю как внутри этой моей ф-ии передать эти параметры в вызов new Date().
var date = newMyDate(вот те параметры)
function newMyDate(а тут вообще ничего нет потому что параметров может быть разное количесство) {
за то тут есть почти_массив arguments
var date = new Date(их надо передать вот сюда)
return date
}и хз как с этим быть
-
Привет, нужно сделать враппер (наследование через прототип не подходит) для new Date().
То есть к примеру мне надо получать дату не так:
var date = new Date();а вот так:
var date = newMyDate();
function newMyDate() {
var date = new Date();
...
some actions
...
return date;
}Все это работает до тех пор пока мне не понадобится передать параметры:
var date = newMyDate(alredy_exist_date.getTime());Теперь в ф-ии newMyDate можно работать с объектом arguments, но как их передать в вызов new Date — непонятно.
У кого нибудь есть идеи? Или эта задача невыполнима?
-
Ajax
in JavaScript
Да, спасибо, это я уже читал, так вот браузер не подвисает. У себя так же пробовал, в скрипте на сервере выставлял слип в секунд 10, подвисала только в-ия, которая отправляла запросы, весь остальной код на странице работал.
var resp;
for (var i = 0; i < 15; i++) {
resp = $.Ajax.send(false, "param=ping", function() {alert("Ok!")});
}Поэтому я не особо представляю что происходит.
Мне кажется что блокируется только данный цикл, пока не вернется ответ, что то вроде:
var resp;
for (var i = 0; i < 15; i++) {
resp = (a+b) / c;
}То есть вычисляется выражение и цикл продолжается.
А если к примеру сделать так:
function sendIt(req) {
return $.Ajax.send(false, req);
}
function test() {
var resp = sendIt("params=ping");
}то ожидать будет и ф-ия test?
Вот я и пытаюсь выяснить, отсюда идут мысли что скрипт не работает во время синхронного запроса?
-
К сожалению у меня пока с трудом работает ИЕ6) седьмой пока не могет, так что как в нем я не видел.
Ну а вообще вы что то долго сидите над такой задачей. Работы то на 5 минут.
В крайнем случае вставте туда таблицу. тогда для крайних ячеек надо установить padding-left: 30px & height: 30px; width не устанавливать, а для средней ячейки width: 100%;
Но это не совсем правельное решение, и будет работать если крайние ячейки будут пусты (из-за паддинга).
А вообще я вам этого не советовал, и уверен что можно сделать и слоями.
-
Ajax
in JavaScript
Хотел спросить, что происходит во время синхронного запроса?
Конкретно что происходит со скриптами, их выполнение останавливается полностью, или только частично?
То есть к примеру в некоторой ф-ии отсылается синхронный запрос, но в это время ещё выполняется множество других ф-ий, они все будут заблокированы или только та в которой выполняется запрос?
-
Это должно подойти.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title></title>
<style type="text/css">
#woodboard {
position: relative;
height:30px;
}
#woodboard_tl, #woodboard_tr {
position: absolute;
height:30px;
width:30px;
top: 0;
}
#woodboard_tl {
left: 0;
background: red;
}
#woodboard_tc {
position: relative;
height:30px;
margin: 0 30px;
background: #c0c0c0;
}
#woodboard_tr {
right: 0;
background: red;
}
</style>
</head>
<body>
<div id="woodboard">
<div id="woodboard_tl"></div>
<div id="woodboard_tc"></div>
<div id="woodboard_tr"></div>
</div>
</body>
</html> -
Дядя Саша, Вы просто идиот раз так искренне полагаете. А с идиотами, как известно спорить безполезно. Я думаю, любому не-идиоту в принципе должно быть очевидно, что разработчики решают проблемы в порядке критичности и не могут решить все роблемы сразу, как бы им этого не хотелось.
Дядя Саша, раз вы искренне считаете что ФФ всегда белый и пушистый, вы читали пост http://forum.htmlbook.ru/index.php?s=&...ost&p=73811 ??? Вам тоже кажется логичным поведение браузера, строящим верное или не верное DOM-дерево, ориентируясь на какие-то свои внутренние случайные процессы? Или может быть вы мне подскажете простой способ избавится от этого эффекта? Буду примного благодарен.
Нет, дорогой homm (хам подходит лучше), идиот - это про вас, если действительно полагаете что я верю в это. У меня просто сильная неприязнь к их продукту (как например у вас ко мне, ведь вы не скромничаете в предположениях)
Вы дважды идиот если предположили что я считаю ФФ белым и пушистым.
Ещё мне не понятно как разработчики Опера оценивают критичность проблемы? Может по 10-ти бальной шкале? Тогда наверно им действительно плевать на проблемы, которые не превышают баллов 4-х, зато я ими наслаждаюсь каждый день.
Ещё по поводу примера, я ошибся и нечаянно наврал. Дело в том что в слой вложен не ещё один слой, а таблица.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns='http://www.w3.org/1999/xhtml' lang='ru' xml:lang='ru'>
<head>
<style type='text/css'>
#megablock {
position: absolute;
left: 20%; top: 20%;
width: 500px;
height: 400px;
background: red;
}
#megablock table {
position: absolute;
width: 100%;
height: 100%;
top: 0; left: 0;
background: blue;
}
</style>
</head>
<body>
<div id="megablock">
<table class=''>
<tr>
<td class=''></td>
<td class=''></td>
<td class=''></td>
</tr>
<tr>
<td class=''></td>
<td class=''></td>
<td class=''></td>
</tr>
<tr>
<td class=''></td>
<td class=''></td>
<td class=''></td>
</tr>
</table>
</div>
<button onclick="return DoThis();">do this</button>
<script type='text/javascript'>
function DoThis() {
var el = document.getElementById('megablock');
var Counter = 400;
var _Timer = setInterval(function() {
Counter += 1;
el.style.height = Counter.toString() + 'px';
if (Counter >=500) {
clearInterval(_Timer);
}
}, 1);
return false;
}
</script>
</body>
</html>А теперь попробуйте так.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns='http://www.w3.org/1999/xhtml' lang='ru' xml:lang='ru'>
<head>
<style type='text/css'>
#megablock {
position: absolute;
left: 20%; top: 20%;
width: 400px;
height: 400px;
background: red;
}
#megablock table {
position: absolute;
width: 100%;
height: 100%;
top: 0; left: 0;
background: blue;
}
</style>
</head>
<body>
<div id="megablock">
<table class=''>
<tr>
<td class=''></td>
<td class=''></td>
<td class=''></td>
</tr>
<tr>
<td class=''></td>
<td class=''></td>
<td class=''></td>
</tr>
<tr>
<td class=''></td>
<td class=''></td>
<td class=''></td>
</tr>
</table>
</div>
<button onclick="return DoThis();">do this</button>
<script type='text/javascript'>
function DoThis() {
var el = document.getElementById('megablock');
var Counter = 400;
var _Timer = setInterval(function() {
Counter += 1;
el.style.height = Counter.toString() + 'px';
el.style.width = Counter.toString() + 'px';
if (Counter >=500) {
clearInterval(_Timer);
}
}, 1);
return false;
}
</script>
</body>
</html> -
Да я не призываю. Просто порядком бесят юнцы, писающие кипятком от продукции эпл и фаерфокса, это же так модно. Надо своими глазами смотреть и видеть и плюсы и минусы, а не быть стадом.
Но хоть от чего то да надо тащится, не надо ставить все в один ряд и говорить что все глючат, некоторые все же глючат меньше и это явно не опера и мелкософт.
Я понимаю тот факт, что если софтом не будут пользоваться - разработчикам будет очень сложно самостоятельно находить ошибки. Я понимаю что по этой причине у меня стоят недоделанные четвертые кеды. Но, когда разработчикам KDE отсылаешь отчёт об ошибке - её, как правило, исправляют. И вот я не понимаю почему разработчикам оперы плевать на багрепорты которые им шлют. Наверно потому что они - козлы, я это заподозрил ещё когда первый раз посмотрел на фото их команды, мне они сразу не понравились.
И вашего выбора я не понимаю.
Опера - очень сырой продукт, это я говорю как разработчик с учётом того что мне все равно какого цвета там кнопочки и насколько быстро переключаются вкладки. Только на личном опыте. С ФФ у меня больших проблем не возникает, даже с ИЕ не столько сколько с оперой, потому что её поведение зачастую действительно не то чтобы трудно было объяснить, а вообще нереально.
Вот проблема, которой я решить не смог. Есть слой, позиционирован абсолютно, ширина и высота указаны в пикселах. В нем ещё один слой, позиционирован абсолютно, высота и ширина по 100%. при этом везде все нормально. Далее начинаю менять размер внешнего слоя, внутренний по идее должен тоже менять свой размер и занимать всю площадь родительского. Если в опере менять только ширину родительского слоя - все хорошо, если и ширину и высоту одновременно - тоже. Но если менять только высоту - вложенный слой не меняет своего размера.
Такой "эффект" только в опере, во всех браузерах (а это не только ФФ и ИЕ) все нормально?
Могу перечислить ещё такие эффекты. При этом я согласен что опера может нормально работать с простенькими сайтами и даже хорошо их понимать. Она может привлекать пользователей своей простотой (имею в виду адресную строку и пару кнопочек, а с недавнего времени ещё и идиотский вид, который разработчики пока что могли бы вообще не трогать имея огромное количество более важных проблем), но стоит влезть глубже, попытаться сделать что либо более сложное - обязательно найдется масса непонятностей, большую часть из который понять, скорее всего, так и не удастся.
Хух, накипело
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title></title>
<style type="text/css">
#woodboard_tl, #woodboard_tr {
position: relative;
height:30px;
width:30px;
}
#woodboard_tl {
float:left;
background: red;
}
#woodboard {
position: relative;
height:30px;
background: #c0c0c0;
}
#woodboard_tr {
float:right;
background: red;
}
</style>
</head>
<body>
<div id="woodboard">
<div id="woodboard_tl"></div>
<div id="woodboard_tr"></div>
</div>
</body>
</html> -
Большое спасибо за помощь. А -x-system-font мне выдал Firebug - это расширение такое для FF ( удобная штука для новичков ).
Вообще то правильней сказать что firebug просто удобен, без "новичков"
А вот что такое -x-system-font? Браузер выдает ошибку -
"Не могу задать значение внутреннего свойства. Ошибка при анализе значения свойства "-x-system-font". Потерянное объявление.
Происходит это в такой ситуации:
sheet.cssRules[i].style.cssText += ";" + ruleName + ":" + value;
Это происходит и в том случае если просто сделать так:
sheet.cssRules[i].style.cssText = sheet.cssRules[i].style.cssText;
В чем может быть дело?
-
Спасибо, но фреймворки не используются, хотя и сделал примерно так же.
Асинхронно загружаю файл стилей в переменную, потом её парсю и добавляю правила в заранее подключённую пустую таблицу стилей.
Но все же надеялся что можно как то по проще все это решить...
-
Проблема собственно не с самим подключением, а с определением момента когда таблица загружена.
В ИЕ работают и onreadystatechange и onload, но мне либо кажется либо как то все равно не синхронно...
В ФФ не работает ни то ни другое.
Ещё вижу как вариант загрузить стили с помощью аякса, а потом вставить их в уже подключённую таблицу, возможно пустую. В общем кто больше знает подскажите пожалста.
-
Все же так у меня сделать не выходит(
Не то чтобы руки кривые, просто приложение построено таким образом, может и покажется что "кривым образом".
Точно нет другого способа получить ссылку на this из this.elem? Ибо на данный момент мне пришлось явно создать ссылку, вот так this.elem.parent = this. Такой вариант можно считать приемлемым?
-
Не выходит так... у меня так построено приложение, что ф-ия обработчик вызывается в контексте объекта, на который и был повешен слушатель. В данном примере это this.elem.
Вот как у меня крепятся слушатели.
this.body.click = [this.actions]; //тут массив, и ф-ии вызываются по порядку.
Все события слушаются на уровне документа.
var obj = $.Event.target;
while (obj && $.Event.bubbles) { //тут события "всплывают"
$.fn.runHandlers(obj);
obj = obj.parentNode;
}Тут выполняются ф-ии обработчики
if (typeof handlers[i] === "function") {
handlers[i].call(obj);
}Ой, я же сам указываю контекст!
-
Я понял, тут получается что ф-ия обработчик запускается в контексте самого обьекта а, тогда при клике мы получаем ссылку на него и можем получить доступ ко всем его свойствам и методам, и к тому же url. Это понятно, но у меня по ряду причин так сделать не выходит( Сейчас буду переделывать. Другого способа точно нет?
На сч?т моего вида, я бы поспорил, ведь вопрос был поставлен более чем конкретно и как говорится "не надо лохматить бабушку")) За мысль спасибо
Вы заблуждаетесь... он родительский.
-
Послушай ка, я конкретно поставил вопрос, на который ты по всей видимости ответа не знаешь, в таком случае за язык никто не тянет. То что я тут парю не имеет никакого значения, есть только пример (который не является рабочим кодом, написан исключительно для лучшего представления) и вопрос. Мне надо получить ссылку на родительский объект. И я конкретно спросил как это сделать, и возможно ли это вообще. Но, заметь, я не просил разъяснять мне что тут написано и как сделать "правильно".
-
Может кто нибудь подскажет, возможно ли получить ссылку на родительский объект. К примеру:
function a() {
this.elem = document.createElement("a");
this.url = "http://www.google.com";
}
var obj = new a();Далее к примеру используем ссылку по е? назначению
и, например, в некоторой ф-ии, при щелчке на ссылке получаем
ссылку на не? (то есть на this.elem).
Так вот вопрос, как получить значение this.url? Или это вообще возможно?
-
Да, 9.51 действительно не выдает, а предыдущие версии выдают. Это глюк браузера?
-
Всем доброго времени суток. Подскажите как быть, использую этот парсер - json2js. В Опера (работаю в линуксе и все гуд, ошибка только в сборках для виндоус) генерится ошибка, когда она доходит вот сюда -
var cx = /[u0000u00adu0600-u0604u070fu17b4u17b5u200c-u200fu2028-u202fu2060-u206fufeffufff0-uffff]/g,
escapeable = /["x00-x1fx7f-x9fu00adu0600-u0604u070fu17b4u17b5u200c-u200fu2028-u202fu2060-u206fufeffufff0-uffff]/g
Враппер для new Date()
in JavaScript
Posted
Ну да, я все это понял, в ноде не хочу хранить его, хочу в массиве, у календаря то есть ссылка на ноду — this.field, я по ней и нахожу нужный мне календарь... только, правда, не из того места, как оказалось)