Это
var verificaHorario = $("#tbIntervalos").find("#" + horaInicial);
найдет Вас td, который должен быть заблокирован.
На самом деле это также сделает:
var verificaHorario = $("#" + horaInicial);
Тестирование на размер () обернутого набора ответит на Ваш вопрос относительно существования идентификатора.
Даже если они кэшированы, у вас могут возникнуть проблемы, поскольку один и тот же код будет выполняться дважды. По крайней мере, это приведет к тому, что браузеру потребуется больше времени, чем необходимо. И это может вызвать ошибки, поскольку большая часть кода JavaScript не написана для выполнения дважды. Например, он может подключать одни и те же обработчики событий дважды.
Не выводите теги сценария непосредственно в свои частичные файлы. Создайте механизм регистрации файлов сценариев для последующего включения. Этот механизм может отвечать за включение файлов только один раз.
Причина того, что width
не кажется «липким», заключается в том, что определенные операции гарантированно вызывают .width (0)
на выходе поток. Это:
21.3.7.9 [lib.string.io]:
template<class charT, class traits, class Allocator>
basic_ostream<charT, traits>&
operator<<(basic_ostream<charT, traits>& os,
const basic_string<charT,traits,Allocator>& str);
22.2.2.2.2 [lib.facet.num.put.virtuals]: Все do_put
перегрузки для num_put
шаблон. Они используются перегрузками оператора <<
, принимающими basic_ostream
и встроенный числовой тип.
22.2.6.2.2 [lib.locale.money.put.virtuals] : Все перегрузки do_put
для шаблона money_put
.
27.6.2.5.4 [lib.ostream.inserters.character]: Перегрузки оператора <<
принимает basic_ostream
и один из типов char для экземпляра basic_ostream или char
, подписанный char
или unsigned char
или указатели. в массивы этих типов char.
Честно говоря, я не уверен в обосновании этого, но никакие другие состояния ostream
не должны сбрасываться функциями форматированного вывода. Конечно, такие вещи, как badbit
и failbit
, могут быть установлены в случае сбоя в операции вывода, но этого следовало ожидать.
Единственная причина, которую я могу придумать. для сброса ширины может быть удивительно, если при попытке вывести некоторые поля с разделителями ваши разделители были дополнены.
Например
std::cout << std::setw(6) << 4.5 << '|' << 3.6 << '\n';
" 4.5 | 3.6 \n"
Чтобы «исправить» это потребует:
std::cout << std::setw(6) << 4.5 << std::setw(0) << '|' << std::setw(6) << 3.6 << std::setw(0) << '\n';
тогда как при сбросе ширины,
Что происходит, так это то, что JavaScript загружается в интерпретатор в момент его загрузки. В случае коллизии пространства имен только имя переменной данной области остается в силе. Обычно этот последний единственный процесс предотвращает возникновение проблем из-за перезаписи функций, загруженных ранее в интерпретатор. Проблема в том, что функция определяет область видимости переменных, причем эти переменные могут быть другими функциями, которые вводят другие области пространства имен переменных. Это проблема, потому что если функции имеют одно и то же значение имени и включают разные определения переменных, тогда может произойти утечка, когда переменные из потока функции в интерпретатор рано сохранятся даже после перезаписи этой функции, что затем может вызвать ожидаемые конфликты пространств имен.
Если один и тот же файл включен дважды, проблем не должно быть. Проблема возникает, когда включены разные версии одного и того же файла или разные файлы с одинаковыми именами функций. Включение одного и того же файла дважды может означать многократную передачу, что приводит к потере полосы пропускания.