Лингвофорум

Общий раздел => Наука и техника => Компьютеры => Тема начата: Bhudh от декабря 14, 2011, 16:35

Название: ContentEditable и JavaScript
Отправлено: Bhudh от декабря 14, 2011, 16:35
Кто-нибудь может популярно объяснить сакральное различие этих двух функций?
function chgSpan1(id) {
editable = document.getElementById(id)
currentState = editable.isContentEditable; // Узнаём текущее значение.
newState = !currentState;            // Переменная нового значения.
editable.contentEditable = newState; // Устанавливаем новое значение.
}

function chgSpan2(id) {
currentState = id.isContentEditable; // Узнаём текущее значение.
newState = !currentState;            // Переменная нового значения.
id.contentEditable = newState;        // Устанавливаем новое значение.
}
Название: ContentEditable и JavaScript
Отправлено: arseniiv от декабря 14, 2011, 16:38
Одна из них где-то не работает.

Глупость сказал.

Первая принимает на вход строку, вторая элэмэнт.
Название: ContentEditable, JavaScript и прочее
Отправлено: Bhudh от декабря 14, 2011, 16:39
Кто-нибудь может популярно объяснить сакральное различие этих двух функций?
function chgSpan1(id) {
   editable = document.getElementById(id)
   currentState = editable.isContentEditable; // Узнаём текущее значение.
   newState = !currentState;            // Переменная нового значения.
   editable.contentEditable = newState; // Устанавливаем новое значение.
}

function chgSpan2(id) {
   currentState = id.isContentEditable; // Узнаём текущее значение.
   newState = !currentState;            // Переменная нового значения.
   id.contentEditable = newState;        // Устанавливаем новое значение.
}


Помимо того, что первая требует параметр обязательно в кавычках, а вторая обязательно без оных...
Название: ContentEditable, JavaScript и прочее
Отправлено: arseniiv от декабря 14, 2011, 16:49
Не должно быть других различий.
Название: ContentEditable и JavaScript
Отправлено: Bhudh от декабря 14, 2011, 16:52
А зачем так сделано? У них разные отклики на отсутствие присутствия принятого?
Название: ContentEditable, JavaScript и прочее
Отправлено: Bhudh от декабря 14, 2011, 16:54
Блин, тема раздвоилась...
Название: ContentEditable и JavaScript
Отправлено: arseniiv от декабря 14, 2011, 17:45
Не думаю. Мне это кажется с точностью до изоморфизма одним и тем же.
chgSpan1(id) = chgSpan2(document.getElementById(id))
Название: ContentEditable, JavaScript и прочее
Отправлено: arseniiv от декабря 14, 2011, 17:46
А я уж думал, ты удалил моё сообщение. :'( Чуть не обиделся.
Название: ContentEditable, JavaScript и прочее
Отправлено: Bhudh от декабря 14, 2011, 18:02
Этшнеблох!
Название: ContentEditable и JavaScript
Отправлено: Bhudh от декабря 14, 2011, 18:03
Цитата: arseniiv от chgSpan1(id) = chgSpan2(document.getElementById(id))
Правая часть нерабочая.
Название: ContentEditable, JavaScript и прочее
Отправлено: arseniiv от декабря 14, 2011, 18:47
Вот и я удивлялся. Выдумал, что ты модератора попросил!
Название: ContentEditable и JavaScript
Отправлено: arseniiv от декабря 14, 2011, 18:48
Скорее всего, я не JS-кодер.
Название: ContentEditable и JavaScript
Отправлено: Demetrius от декабря 14, 2011, 20:28
Цитата: Bhudh от декабря 14, 2011, 18:03
Цитата: arseniiv от chgSpan1(id) = chgSpan2(document.getElementById(id))
Правая часть нерабочая.
А она и должна быть нерабочая, потому что тут = не в яваскриптовом смысле. :P

Арсений имел в виду, что chgSpan1(id) и chgSpan2(document.getElementById(id)) идентичны.

То есть выполняется равенство
chgSpan1(id) == chgSpan2(document.getElementById(id))
для любых id.
Название: ContentEditable и JavaScript
Отправлено: arseniiv от декабря 14, 2011, 21:26
Ой, я как-то забыл про присваивание. :-[
Название: ContentEditable и JavaScript
Отправлено: Demetrius от декабря 14, 2011, 21:32
Про него все забывают. Авторы С специально такой символ для присваивания выбрали, чтобы все потом путались.
Название: ContentEditable и JavaScript
Отправлено: Bhudh от декабря 14, 2011, 22:12
Цитата: Demetrius от А она и должна быть нерабочая, потому что тут = не в яваскриптовом смысле.
А я и не имел в виду в яваскриптовом смысле.
Я имел в виду, что кавыки забыли.
Рабочий вариант:
Название: ContentEditable и JavaScript
Отправлено: arseniiv от декабря 14, 2011, 22:14
Offtop
Я привык, но забыл...

Цитата: Bhudh от декабря 14, 2011, 22:12
Рабочий вариант:
Я понимал как переменную. Переменная строковая бывает. И это именно я почти не спал ночь. :-\
Название: ContentEditable, JavaScript и прочее
Отправлено: Bhudh от декабря 14, 2011, 22:20
Или я модератором стал? ;)
Название: ContentEditable, JavaScript и прочее
Отправлено: arseniiv от декабря 14, 2011, 22:25
Не вижу. :)
Название: ContentEditable, JavaScript и прочее
Отправлено: Bhudh от декабря 14, 2011, 22:26
А mystʼа видел?
Название: ContentEditable и JavaScript
Отправлено: Bhudh от декабря 14, 2011, 22:30
Яндыкс выдал:
Цитата: Строковая переменная содержит текст в кодировке Unicode длиной до 231 (более 2 миллиардов!) символов.
;D
Название: ContentEditable и JavaScript
Отправлено: arseniiv от декабря 14, 2011, 22:30
Маловато будет.
Название: ContentEditable, JavaScript и прочее
Отправлено: arseniiv от декабря 14, 2011, 22:30
Какого?
Название: ContentEditable, JavaScript и прочее
Отправлено: Bhudh от декабря 14, 2011, 22:33
:o Админа!
Название: ContentEditable, JavaScript и прочее
Отправлено: arseniiv от декабря 14, 2011, 22:39
Я помню только двух.
Название: ContentEditable, JavaScript и прочее
Отправлено: Bhudh от декабря 14, 2011, 22:41
:what:
Название: ContentEditable, JavaScript и прочее
Отправлено: arseniiv от декабря 14, 2011, 22:42
ginkgo и yuditsky.
Название: ContentEditable и JavaScript
Отправлено: Demetrius от декабря 14, 2011, 23:04
Ой, arseniiv уже написал.
Название: ContentEditable и JavaScript
Отправлено: Тайльнемер от декабря 15, 2011, 04:23
Цитата: Bhudh от декабря 14, 2011, 22:30
длиной до 231 (более 2 миллиардов!) символов
Что такое «231»?
Название: ContentEditable и JavaScript
Отправлено: Bhudh от декабря 15, 2011, 09:50
Цитата: Demetrius от
  • Если без кавычек, то id—переменная, хранящая идентификатор, что гораздо логичнее.
:donno: Не знаю, у меня хранящую переменную не брал почему-то...
Надо ещё разок проверить... Может, я ему не то давал?‥ :-\

Цитата: Тайльнемер от Что такое «231»?
231
Название: ContentEditable, JavaScript и прочее
Отправлено: Bhudh от декабря 15, 2011, 09:51
Они ж глобалы...
Название: ContentEditable, JavaScript и прочее
Отправлено: arseniiv от декабря 15, 2011, 14:41
Ха-ха! Я тебя довёл, ты сказал неправду про ginkgo!
Название: ContentEditable, JavaScript и прочее
Отправлено: Bhudh от декабря 16, 2011, 00:40
А ginkgo не была глобалом? Я не помню чего-й-то...
Название: ContentEditable, JavaScript и прочее
Отправлено: arseniiv от декабря 18, 2011, 17:13
«Белый снег, белый мел, // белый заяц тоже бел, // а вот белка не бела, // белой даже не была.»
Название: ContentEditable и JavaScript
Отправлено: Bhudh от декабря 19, 2011, 01:22
Если NaN не равно себе, не больше себя и не меньше себя, чему равно Not(NaN)?
Название: ContentEditable и JavaScript
Отправлено: arseniiv от декабря 19, 2011, 19:10
А щщего ты взял, что это прмиенимо к NaN? А Not(2) чему равно?
Название: ContentEditable и JavaScript
Отправлено: Python от декабря 19, 2011, 19:13
user=> (Math/sqrt -1)
NaN
user=> (not (Math/sqrt -1))
false
user=>
Название: ContentEditable и JavaScript
Отправлено: Bhudh от декабря 20, 2011, 06:28
Хе-хе...
Жаба скрипит:
     0/0 = NaN
     not(0/0) = true
Название: ContentEditable и JavaScript
Отправлено: Bhudh от декабря 20, 2011, 06:31
Цитата: arseniiv от А Not(2) чему равно?
false
Название: ContentEditable и JavaScript
Отправлено: Bhudh от декабря 22, 2011, 09:36
Прикольно. Если внутрь элемента с contenteditable='true' поместить другой элемент с contenteditable='true', второй становится нередактируемым.
А если внутрь второго поместить третий подобный же, он является редактируемым!
Но есть один нюанс: если с того элемента (первого или третьего), который поддаётся редактированию, передвинуть стрелками или deleteʼми курсор на неподдающийся, он поддастся!
Видимо, булево значение вычисляется как результат значений вложенных элементов...