Результаты поиска
Как получить содержимое CKEDITOR в виде html
Пользуюсь редактором CKeditor. Как мне получить его контент в виде html. Помогите разобраться.
.
Перенос списков в столбцы
Я использую ColdFusion для заполнения шаблона, который включает в себя HTML списков ( <ul>'s).
Большинство из них не так уж и длинны, но некоторые имеют смехотворно длинные длины и действительно могут стоять в колонках 2-3.
Есть ли HTML, ColdFusion или, возможно, JavaScript (у меня есть jQuery` в наличии) способ сделать это легко? Это не стоит какого-то сверхсложного тяжеловесного решения, чтобы сэкономить немного прокрутки.
Как добавить тег pre внутрь кодового тега с jQuery?
Я пытаюсь использовать jQuery для форматирования блоков кода, а именно для добавления тега <pre> внутри тега <code> :
$(document).ready(function() {
$("code").wrapInner("<pre></pre>");
});
Firefox применяет форматирование правильно, но IE помещает весь блок кода в одну строку. Если я добавлю предупреждение
alert($("code").html());
Я вижу, что IE вставил некоторый дополнительный текст в тег pre:
<PRE jQuery1218834632572="null">
Если я перезагружаю страницу, число после jQuery изменяется.
Если я использую wrap() вместо wrapInner(), чтобы обернуть <pre> за пределами тега <code> , то и IE, и Firefox обрабатывают его правильно. Но разве <pre> не должен работать и внутри <code> ?
Я бы предпочел использовать wrapInner() , потому что затем я могу добавить класс CSS к тегу <pre> для обработки всех форматирований, но если я использую wrap() , мне придется поместить форматирование страницы CSS в тег <pre> и форматирование текста/шрифта в тег <code> , или Firefox и IE оба дросселя. Ничего особенного, но я бы хотел, чтобы все было как можно проще.
Кто-нибудь еще сталкивался с этим? Я что-то упустил?
Прокрутка переполнена DIVs с JavaScript
У меня есть div, который использует overflow:auto, чтобы сохранить содержимое внутри div, когда оно изменяется и перетаскивается по странице. Я использую некоторые ajax для извлечения строк текста с сервера, а затем добавляю их в конец div, поэтому содержимое растет вниз. Каждый раз, когда это происходит, я хотел бы использовать JS-scroll div снизу, чтобы самый последний добавленный контент был виден, подобно тому, как будет работать чат или консоль командной строки.
До сих пор я использовал этот фрагмент кода, чтобы сделать это (я также использую jQuery, следовательно, функцию $() ):
$("#thediv").scrollTop = $("#thediv").scrollHeight;
Однако это дало мне противоречивые результаты. Иногда это работает, иногда нет, и он полностью перестает работать, если пользователь когда-либо изменяет размер div или перемещает панель scroll вручную.
Целевой браузер-это Firefox 3, и он развертывается в контролируемой среде, поэтому ему вообще не нужно работать в IE.
Есть идеи, ребята? Этот вопрос поставил меня в тупик. Спасибо!
Динамическая Алфавитная Навигация
Я использую ColdFusion , чтобы вернуть результирующий набор из базы данных SQL и превратить его в список.
Мне нужен какой-то способ создать алфавитную навигационную панель для этого списка. У меня есть библиотека ColdFusion и jQuery.
Я ищу, чтобы создать что-то вроде этого:
A | B | C | ...
- A
- A
- B
- B
- B
- C
- D
Где нажатие на одну из букв опускает вас вниз по странице до первого элемента для этой буквы. Не все 26 букв алфавита обязательно используются.
jQuery AJAX против UpdatePanel
У нас есть страница с тонной jQuery (примерно 2000 строк), которую мы хотим обрезать b/c это кошмар обслуживания, и его может быть проще поддерживать на сервере. Мы подумали о том, чтобы использовать для этого UpdatePanel. Однако нам не нравится тот факт, что UpdatePanel отправляет всю страницу обратно на сервер.
Экранирование строк HTML с помощью jQuery
Кто-нибудь знает простой способ избежать HTML из строк в jQuery ? Мне нужно иметь возможность передать произвольную строку и правильно экранировать ее для отображения на странице HTML (предотвращая атаки инъекций JavaScript/HTML). Я уверен, что для этого можно расширить jQuery, но на данный момент я недостаточно знаю о фреймворке, чтобы выполнить это.
Что такое селекторный двигатель?
Я видел новости о быстром новом селекторном двигателе Джона Ресига под названием Sizzle , появившиеся в нескольких местах, но я не знаю, что такое селекторный двигатель, и ни в одной из статей не было дано объяснения того, что это такое. Я знаю, что Resig-это создатель jQuery, и это шипение-что-то в Javascript, но кроме этого я не знаю, что это такое. Итак, что же такое селекторный двигатель?
Спасибо!
Как установить кодировку в .getJSON jQuery
В моем веб-приложении я отправляю некоторые поля формы с помощью метода jQuery $.getJSON() . У меня возникли некоторые проблемы с кодировкой. Набор символов моего приложения- charset=ISO-8859-1, но я думаю, что эти поля представлены с UTF-8 .
Как я могу установить кодировку, используемую в вызовах $.getJSON ?
Сохраняя пары ключевых значений вместе в HTML с jQuery?
Учитывая выбор с несколькими вариантами в jQuery.
$select = $("<select></select>");
$select.append("<option>Jason</option>") //Key = 1
.append("<option>John</option>") //Key = 32
.append("<option>Paul</option>") //Key = 423
Как следует хранить и извлекать ключ?
ID может быть местом OK, но не будет гарантировано уникальным, если у меня есть несколько общих значений select (и другие сценарии).
Спасибо
и в духе TMTOWTDI.
$option = $("<option></option>");
$select = $("<select></select>");
$select.addOption = function(value,text){
$(this).append($("<option/>").val(value).text(text));
};
$select.append($option.val(1).text("Jason").clone())
.append("<option value=32>John</option>")
.append($("<option/>").val(423).text("Paul"))
.addOption("321","Lenny");
Где я могу узнать jQuery? Стоит ли оно того?
У меня было много хорошего опыта, изучая веб-разработку на w3schools.com . Это хит или промах, я знаю, но разделы PHP и CSS оказались очень полезными для справки.
В любом случае, мне было интересно, есть ли подобный сайт для jQuery . Я заинтересован в обучении, но мне нужно, чтобы он был online/searchable,, чтобы я мог легко вернуться к нему, когда мне понадобится информация в будущем.
Кроме того, в качестве краткого замечания, стоит ли изучать jQuery? Или мне стоит посмотреть на разные библиотеки JavaScript? Я знаю, что Джефф использует jQuery для переполнения стека, и это, кажется, хорошо работает.
Спасибо!
Edit: на веб-сайте jQuery есть довольно большой список учебных пособий и, казалось бы, исчерпывающая страница документации . У меня еще не было времени пройти через все это, у кого-нибудь еще был опыт с этим?
Правка 2: похоже, что Google теперь размещает библиотеки jQuery. Это должно дать jQuery довольно большое преимущество с точки зрения публичности.
Кроме того, если все пользователи используют единую унифицированную библиотеку aQuery, размещенную в одном и том же месте, она должна быть кэширована для большинства пользователей Интернета на ранней стадии и поэтому не должна влиять на загрузку вашего сайта, если вы решите ее использовать.
2 Месяца Спустя...
Правка 3: я недавно начал использовать jQuery в проекте на работе, и с ним очень приятно работать! Просто хотел, чтобы все знали, что я пришел к выводу, что ABSOLUTELY стоит того, чтобы изучить и использовать jQuery.
Кроме того, я почти полностью изучил официальную документацию jQuery и учебные пособия . Это очень просто.
10 Месяцев Спустя...
jQuery является частью почти каждого веб-приложения, которое я сделал с тех пор, как я впервые написал этот пост. Это делает прогрессивное улучшение легким ветерком и помогает сделать код ремонтопригодным.
Кроме того, все плагины jQuery являются бесценным ресурсом!
3 Года Спустя...
По-прежнему использую jQuery почти каждый день. Теперь я автор jQuery плагинов и консультирую полный рабочий день. Я в основном Джангонавт, но я сделал несколько контрактов javascript только с jQuery. Это спасает нам жизнь.
От одного пользователя jQuery к другому... Вы должны посмотреть на шаблон с jQuery (или подчеркиванием-см. ниже).
Другие вещи, которые я нашел ценными в дополнение к jQuery (с предполагаемой частью проектов, на которых я использую его):
- jQuery Плагин Формы (95%)
- jQuery Пример Формы Плагин (75%)
- jQuery UI (70%)
- Underscore.js (80%)
- CoffeeScript (30%)
- Backbone.js (10%)
Как бы вы обрабатывали ошибки при использовании jQuery.ajax()?
При использовании jQuery с ajax способ представить данные форме, что является лучшим способом, чтобы обрабатывать ошибки? Это пример того, как может выглядеть вызов:
$.ajax({
url: "userCreation.ashx",
data: { u:userName, p:password, e:email },
type: "POST",
beforeSend: function(){disableSubmitButton();},
complete: function(){enableSubmitButton();},
error: function(xhr, statusText, errorThrown){
// Work out what the error was and display the appropriate message
},
success: function(data){
displayUserCreatedMessage();
refreshUserList();
}
});
Запрос может завершиться неудачей по ряду причин, таких как дублирование имени пользователя, дублирование адреса email и т. д., и ashx записывается для создания исключения, когда это происходит.
Моя проблема, похоже, заключается в том, что, бросая исключение, ashx вызывает неопределенность statusText и errorThrown .
Я могу добраться до XMLHttpRequest.responseText , который содержит HTML, который составляет стандартную страницу ошибки .net.
Я нахожу заголовок страницы в responseText и использую заголовок, чтобы выяснить, какая ошибка была выброшена. Хотя у меня есть подозрение, что это развалится, когда я включу пользовательские страницы обработки ошибок.
Должен ли я выбрасывать ошибки в ashx, или я должен возвращать код состояния как часть данных, возвращенных вызовом userCreation.ashx , а затем использовать это, чтобы решить, какие действия предпринять?
Как вы справляетесь с этими ситуациями?
SimpleModal Break ASP.Net Postbacks
Я использую jQuery и SimpleModal в проекте ASP.Net, чтобы сделать несколько хороших диалогов для веб-приложения. К сожалению, любые кнопки в модальном диалоге больше не могут выполнять свои обратные вызовы, что на самом деле неприемлемо.
Есть один источник, который я нашел с обходным путем, но за всю свою жизнь я не могу заставить его работать, главным образом потому, что я не полностью понимаю все необходимые шаги.
У меня также есть обходной путь, который должен заменить обратную связь, но он уродлив и, вероятно, не самый надежный. Мне бы очень хотелось, чтобы эти постбэки снова заработали. Есть какие-нибудь идеи?
UPDATE: я должен уточнить, что обратные сообщения не работают, потому что Javascript, используемый для выполнения обратных сообщений, каким-то образом сломался, поэтому при нажатии на кнопку ничего не происходит.
Как получить пиксельные координаты (x, y) курсора в текстовых полях?
Я использую jQuery и пытаюсь найти кроссбраузерный способ получить пиксельные координаты каретки в полях <textarea> s и input таким образом, чтобы я мог разместить абсолютно позиционированный div вокруг этого местоположения.
Есть ли какой-нибудь плагин jQuery? Или JavaScript сниппет, чтобы сделать именно это?
Посоветуйте галерею на jQuery с возможностью комментирования изображений
Просмотрел много галерей, понравились, например, VoxView и Lightbox / PrettyPhoto, но у всех отсутствует возможность оставлять комментарии.
Если попадалась кому-то подобная галерея, подскажите название.
Opera 10.61 (Linux), jQuery и стилизованный файл-инпут [Решено]
CSS:
.button {
width: 193px; /* размеры кноки */
height: 62px;
margin: 14px 0px;
background: url(img/0309input.jpg);
overflow: hidden; /* поможет избежать выхода поля за границы кнопки */
position: relative; /* относительно этого блока будем позиционировать поле */
}
.button input {
height: 200px;
position: absolute; /* для более простого позиционирования поля */
top: 0; /* начальные координаты */
right: 0;
opacity: 0; /* само поле делаем прозрачным, чтобы показать фон кнопки */
filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);
cursor: pointer;
font-size: 200px;
z-index: 5;
}
#filename {
z-index: 3;
position: absolute;
top: 6px;
left: 6px;
width: 184px;
height: 19px;
overflow: hidden;
}
HTML:
Загрузить новое:
<div class="button">
<div id="filename"></div>
<input id="photo" type="file" name="photo" value=""/>
</div>
jQuery:
$(document).ready(function(){
$("#photo").change(function() {
$("#filename").text($("#photo").val());
});
});
Ubuntu 10.04
Результат в Opera 10.61

Результат в Chrome

Результат в Firefox

Собственно вопрос: ЧЯДНТ & WTF?
Что это еще за C:\fakepath и откуда он берется? При этом обычные, не стилизованные, файл-инпуты в Опере отображают правильный полный путь от корня…
UPD:
Только что проверила на компах с Win7, WinXP — то же самое.
UPD 2:
Сделала так:
function str_replace(search, replace, subject) {
return subject.split(search).join(replace);
}
$("#photo").change(function() {
var newpath = str_replace(«C:\\fakepath\\», "", $("#photo").val());
$("#filename").text(newpath);
});
Работает.
Однако шокирована наличием такой «секьюрити-приблуды», или же такого «средства совместимости», неважно. Я уже и не помню, на каком количестве сайтов использовала этот способ стилизации инпута… это теперь на них везде fakepath? Мда…
width: 193px; /* размеры кноки */
height: 62px;
margin: 14px 0px;
background: url(img/0309input.jpg);
overflow: hidden; /* поможет избежать выхода поля за границы кнопки */
position: relative; /* относительно этого блока будем позиционировать поле */
}
.button input {
height: 200px;
position: absolute; /* для более простого позиционирования поля */
top: 0; /* начальные координаты */
right: 0;
opacity: 0; /* само поле делаем прозрачным, чтобы показать фон кнопки */
filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);
cursor: pointer;
font-size: 200px;
z-index: 5;
}
#filename {
z-index: 3;
position: absolute;
top: 6px;
left: 6px;
width: 184px;
height: 19px;
overflow: hidden;
}
<div class="button">
<div id="filename"></div>
<input id="photo" type="file" name="photo" value=""/>
</div>
$("#photo").change(function() {
$("#filename").text($("#photo").val());
});
});
Drag'n'drop для динамически созданных элементов (jQuery)?
В jQuery есть такой хороший плагин jQuery UI Draggable, который позволяет создавать эффекты drag'n'drop. Работает он достаточно просто: нужно для любого существующего элемента вызвать метод .draggable():
$('#test').draggable();
Если же попытаться вызвать этот метод для динамически добавленного элемента, то ничего не произойдёт:
$('body').append('<div id="newblock">Новый элемент</div>');
$('#newblock').draggable();
«Новый элемент» не будет обладать возможностью drag'n'drop. Как сделать тут что-то типо аналога функции .live(), чтобы динамически созданные элементы тоже реагировали на эти методы?
$('body').append('<div id="newblock">Новый элемент</div>');
$('#newblock').draggable();
Вложенные формы, динамические элементы
Есть форма, в ней вложенны несколько элементов — например учредители, которые надо туда добавить (кол-во неограничего). Раньше делал кнопку «еще один учредитель», по нажатию которой добавлялись еще поля, Теперь форма сложнее, и необходимо красивое решение. Технологии — PHP/jQuery.
Пример.
Структура такая:
поле 1
поле 2
учредители:
учредитель 1: фио1, место регистрации, поле 3, поле 4
учредитель 2: фио2, место регистрации, поле 3, поле 4
-добавить учредителя (кнопка добавляет еще инпутов)
поле 3
поле 4
поле 2
учредители:
учредитель 1: фио1, место регистрации, поле 3, поле 4
учредитель 2: фио2, место регистрации, поле 3, поле 4
-добавить учредителя (кнопка добавляет еще инпутов)
поле 3
поле 4
Выбор первого чекбокса?
Есть такой код:
<_tr class="table_rows"><br/>
<br/>
<_td><_input name="del[{$item->id}]" type="checkbox" id="del[{$item->id}]" value="1">
<_td>
<_input name=«test» type=«text» id=«test» value=«123» size=«60»>
<_/td>
<_td>
текст
<_/td>
<_/ tr>
Код выше используется для вывода списка документов, при нажатии на них построчно должен выделятся чекбокс. Проблема в том, что при нажатии на другие чекбоксы, ссылки или поля ввода первый чекбокс оказывается выделенным. Как сделать ограничение?
$('.table_rows').click(function() {<br/>
$(this).toggleClass("selects");<br/>
<br/>
if( $(this).find("input").is(":checked"))<br/>
{<br/>
$(this).find("input").removeAttr("checked");<br/>
} else {<br/>
$(this).find("input").attr("checked","checked");<br/>
}<br/>
<br/>
}); <br/>
<_tr class="table_rows"><br/>
<br/>
<_td><_input name="del[{$item->id}]" type="checkbox" id="del[{$item->id}]" value="1">$('.table_rows').click(function() {<br/>
$(this).toggleClass("selects");<br/>
<br/>
if( $(this).find("input").is(":checked"))<br/>
{<br/>
$(this).find("input").removeAttr("checked");<br/>
} else {<br/>
$(this).find("input").attr("checked","checked");<br/>
}<br/>
<br/>
}); <br/>
[jQuery UI tabs + layout] layout внутри таба на весь экран... как?
Доброго времени суток… Пытаюсь сделать, чтобы внутри одного из табов был сплиттер таким вот образом:
<link type="text/css" rel="stylesheet" href="css/smoothness/jquery-ui-1.8.4.custom.css"/>
<link type="text/css" rel="stylesheet" href="css/jquery-layout.css"/>
<script type="text/javascript" src="js/jquery-1.4.2.min.js"/>
<script type="text/javascript" src="js/jquery-ui-1.8.4.custom.min.js"/>
<script type="text/javascript" src="js/jquery-layout.js"/>
"Content-Type" content="text/html; charset=UTF-8">
ii
<script type="text/javascript">
$(function() {
$("#tabs").tabs();
});
</script>
"tabs">
- "#expertTab">Expert mode
"#userTab">User mode
<script type="text/javascript">
var expertLayout = null;
$(function() {
expertLayout = $("#expertTab").layout({
resizable: true,
closeable: false
});
});
</script>
<div id="expertTab">
<div id="layout1" class="ui-layout-west">
asdf
</div>
<div id="layout2" class="ui-layout-center">
fdsa
</div>
</div>
<div id="userTab"></div>
</div>
</body>
</html>
* This source code was highlighted with Source Code Highlighter.
и получаю вот это:
.
Как можно сделать, чтобы табы вместе со своим содержимым были во всю высоту окна браузера?
<link type="text/css" rel="stylesheet" href="css/smoothness/jquery-ui-1.8.4.custom.css"/>
<link type="text/css" rel="stylesheet" href="css/jquery-layout.css"/>
<script type="text/javascript" src="js/jquery-1.4.2.min.js"/>
<script type="text/javascript" src="js/jquery-ui-1.8.4.custom.min.js"/>
<script type="text/javascript" src="js/jquery-layout.js"/>
"Content-Type" content="text/html; charset=UTF-8">
ii
<script type="text/javascript">
$(function() {
$("#tabs").tabs();
});
</script>
"tabs">
- "#expertTab">Expert mode
"#userTab">User mode
<script type="text/javascript">
var expertLayout = null;
$(function() {
expertLayout = $("#expertTab").layout({
resizable: true,
closeable: false
});
});
</script>
<div id="expertTab">
<div id="layout1" class="ui-layout-west">
asdf
</div>
<div id="layout2" class="ui-layout-center">
fdsa
</div>
</div>
<div id="userTab"></div>
</div>
</body>
</html>
* This source code was highlighted with Source Code Highlighter.
Drag'n'drop для динамически созданных элементов (jQuery)?
В jQuery есть такой хороший плагин jQuery UI Draggable, который позволяет создавать эффекты drag'n'drop. Работает он достаточно просто: нужно для любого существующего элемента вызвать метод .draggable():
$('#test').draggable();
Если же попытаться вызвать этот метод для динамически добавленного элемента, то ничего не произойдёт:
$('body').append('<div id="newblock">Новый элемент</div>');
$('#newblock').draggable();
«Новый элемент» не будет обладать возможностью drag'n'drop. Как сделать тут что-то типо аналога функции .live(), чтобы динамически созданные элементы тоже реагировали на эти методы?
$('body').append('<div id="newblock">Новый элемент</div>');
$('#newblock').draggable();
Вложенные формы, динамические элементы
Есть форма, в ней вложенны несколько элементов — например учредители, которые надо туда добавить (кол-во неограничего). Раньше делал кнопку «еще один учредитель», по нажатию которой добавлялись еще поля, Теперь форма сложнее, и необходимо красивое решение. Технологии — PHP/jQuery.
Пример.
Структура такая:
поле 1
поле 2
учредители:
учредитель 1: фио1, место регистрации, поле 3, поле 4
учредитель 2: фио2, место регистрации, поле 3, поле 4
-добавить учредителя (кнопка добавляет еще инпутов)
поле 3
поле 4
поле 2
учредители:
учредитель 1: фио1, место регистрации, поле 3, поле 4
учредитель 2: фио2, место регистрации, поле 3, поле 4
-добавить учредителя (кнопка добавляет еще инпутов)
поле 3
поле 4
Выбор первого чекбокса?
Есть такой код:
<_tr class="table_rows"><br/>
<br/>
<_td><_input name="del[{$item->id}]" type="checkbox" id="del[{$item->id}]" value="1">
<_td>
<_input name=«test» type=«text» id=«test» value=«123» size=«60»>
<_/td>
<_td>
текст
<_/td>
<_/ tr>
Код выше используется для вывода списка документов, при нажатии на них построчно должен выделятся чекбокс. Проблема в том, что при нажатии на другие чекбоксы, ссылки или поля ввода первый чекбокс оказывается выделенным. Как сделать ограничение?
$('.table_rows').click(function() {<br/>
$(this).toggleClass("selects");<br/>
<br/>
if( $(this).find("input").is(":checked"))<br/>
{<br/>
$(this).find("input").removeAttr("checked");<br/>
} else {<br/>
$(this).find("input").attr("checked","checked");<br/>
}<br/>
<br/>
}); <br/>
<_tr class="table_rows"><br/>
<br/>
<_td><_input name="del[{$item->id}]" type="checkbox" id="del[{$item->id}]" value="1">$('.table_rows').click(function() {<br/>
$(this).toggleClass("selects");<br/>
<br/>
if( $(this).find("input").is(":checked"))<br/>
{<br/>
$(this).find("input").removeAttr("checked");<br/>
} else {<br/>
$(this).find("input").attr("checked","checked");<br/>
}<br/>
<br/>
}); <br/>
[jQuery UI tabs + layout] layout внутри таба на весь экран... как?
Доброго времени суток… Пытаюсь сделать, чтобы внутри одного из табов был сплиттер таким вот образом:
<link type="text/css" rel="stylesheet" href="css/smoothness/jquery-ui-1.8.4.custom.css"/>
<link type="text/css" rel="stylesheet" href="css/jquery-layout.css"/>
<script type="text/javascript" src="js/jquery-1.4.2.min.js"/>
<script type="text/javascript" src="js/jquery-ui-1.8.4.custom.min.js"/>
<script type="text/javascript" src="js/jquery-layout.js"/>
"Content-Type" content="text/html; charset=UTF-8">
ii
<script type="text/javascript">
$(function() {
$("#tabs").tabs();
});
</script>
"tabs">
- "#expertTab">Expert mode
"#userTab">User mode
<script type="text/javascript">
var expertLayout = null;
$(function() {
expertLayout = $("#expertTab").layout({
resizable: true,
closeable: false
});
});
</script>
<div id="expertTab">
<div id="layout1" class="ui-layout-west">
asdf
</div>
<div id="layout2" class="ui-layout-center">
fdsa
</div>
</div>
<div id="userTab"></div>
</div>
</body>
</html>
* This source code was highlighted with Source Code Highlighter.
и получаю вот это:
.
Как можно сделать, чтобы табы вместе со своим содержимым были во всю высоту окна браузера?
<link type="text/css" rel="stylesheet" href="css/smoothness/jquery-ui-1.8.4.custom.css"/>
<link type="text/css" rel="stylesheet" href="css/jquery-layout.css"/>
<script type="text/javascript" src="js/jquery-1.4.2.min.js"/>
<script type="text/javascript" src="js/jquery-ui-1.8.4.custom.min.js"/>
<script type="text/javascript" src="js/jquery-layout.js"/>
"Content-Type" content="text/html; charset=UTF-8">
ii
<script type="text/javascript">
$(function() {
$("#tabs").tabs();
});
</script>
"tabs">
- "#expertTab">Expert mode
"#userTab">User mode
<script type="text/javascript">
var expertLayout = null;
$(function() {
expertLayout = $("#expertTab").layout({
resizable: true,
closeable: false
});
});
</script>
<div id="expertTab">
<div id="layout1" class="ui-layout-west">
asdf
</div>
<div id="layout2" class="ui-layout-center">
fdsa
</div>
</div>
<div id="userTab"></div>
</div>
</body>
</html>
* This source code was highlighted with Source Code Highlighter.
JQuery, JSON, iframe и кавычки вместе не работают?
Произвожу upload файла в iframe(по другому вроде никак). В качестве ответа генерирую JSON объект где одно из полей это строчка с html описывающим ошибку.
Вопрос: Как мне забрать этот ответ от сервера его не побив?
Когда использую .text() из JQuery все теги удаляются.
Когда использую .html() из JQuery он «исправляет» html и после этого не возможно сделать десериализацию JSON потому-что кавычки теряют экранирующий символ. получаем Invalid JSON.
Контроль состояния прозрачности JavaScript
Доброе утро, хабр!
Задача, что стоит передо мной проста и стара как мир — анимационная смена одной картинки другой при наведении мышки. Картинки имеют одинаковые размеры, одна — просто кнопка, другая — кнопка со «свечением»(hover state), кнопки абсолютно позиционированны и находятся «друг в друге». В примитиве задача решается такими строками кода на jQuery:
$('div#left ul li').css({opacity: 0.0});
$('div#left ul li:first').css({opacity: 1.0});
$("div#left li").mouseover(function () {
$('div#left ul li:first').animate({opacity: 0.0}, 1000);
$('div#left ul li:last').animate({opacity: 1.0}, 1000);
});
$("div#left li").mouseout(function () {
$('div#left ul li:first').animate({opacity: 1.0}, 1000);
$('div#left ul li:last').animate({opacity: 0.0}, 1000);
});
Но у данного подхода есть 1 большая проблема — события вызываются и ставятся в очередь вне зависимости от текущего состояния элемента, то есть несколько наведений мышки на элемент вызывают «перемигивание» элемента. Вопрос состоит в том, как отследить текущее состояние элемента и тем самым не включать его обработку, если в данный момент прозрачность картинки изменяется?
$('div#left ul li:first').css({opacity: 1.0});
$("div#left li").mouseover(function () {
$('div#left ul li:first').animate({opacity: 0.0}, 1000);
$('div#left ul li:last').animate({opacity: 1.0}, 1000);
});
$("div#left li").mouseout(function () {
$('div#left ul li:first').animate({opacity: 1.0}, 1000);
$('div#left ul li:last').animate({opacity: 0.0}, 1000);
});
Подскажите хороший html5 аудиоплеер
Хотел реализовать для своего сайта воспроизведение аудио без флеша, но хорошего инструмента работающего с плейлистами и имеющего достаточное большое колличество настроек не нашел.
Нужно что-то напоминающее prostopleer и www.plusmusica.com/
jQuery — выбрать элементы только с определенным набором классов
Возможно глупый вопрос, но я что-то не могу разобраться.
Есть 3 блока с классом .one и один блок с классом .one и .two
Как мне в jQuery выбрать только элемент у которого есть оба класса .one и .two?
Ищем Open Source Orphus
Хочется скрипт для рецензирования статей в Блоггере по аналогии с Orphus и сайтом Леонида Каганова. Чтобы такой скрипт легко встраивался в любой сайт, желательно, чтобы он был на чистом javascript.
Результаты проверки хорошо бы записывать в комментарии к записи, отправлять GET запросом на другой сайт, помещать в Google forms или ещё куда-нибудь. Если записывать замечания в комментарии, то можно потом подрисовывать эти комментарии прямо на том месте, к которому они относятся.
От какого хорошего свободного инструмента оттолкнуться? Получилось найти только плагин для Joomla joomlaforum.ru/index.php/topic%2c12663.0/topicseen.html
Может есть какой-то плагин к jquery? Как-то такая-же функциональность работает на сайте госуслуг?
www.gosuslugi.ru/ru/: Если вы обнаружили неточности в опубликованной информации, просьба оперативно сообщить об этом оператору портала. Выделите некорректный текст и нажмите клавиши CTRL+ENTER. Сведения об ошибках будут оперативно переданы в ведомство, разместившее информацию.
Есть ли люди на Хабре, разбирающиеся в document.on<событие> и в bloggerService.insertEntry, чтобы самим написать подобную библиотеку?
Много материалов по теме можно найти по ссылкам, но как-то мне это особенно не помогло
habrahabr.ru/search/?q=orphus
www.google.ru/search?q=%22ctrl%2Benter%22
AJAX запрос в jQuery. Как избавится от заголовка Access-Control-Request-Headers?
Здравствуйте. Надо при помощи javascript'а вытянуть данные из xml-файла генерирующегося на удалённом сервере. Всё до чего смог додуматься — сделать ajax запрос к xml-файлу.
Но jQuery вместо GET-запроса отправляет OPTIONS-запрос.
Оказалось, что этот запрос отсылается Firefox'ом в случае cross-domain request, когда отправляются нестандартные заголовки. В случае с jQuery это кажется:
Access-Control-Request-Headers: x-requested-with
Как избавиться от этого заголовка? Или может есть другие способы вытянуть информацию из xml?
Не плавная анимация Jquery.Animate?
Есть страничка, на ней много картинок, она большая — 4000х2000. И в некоторых браузерах анимация, сделанная через jquery.easing.1.3 (да и без него тоже, разницы никакой)
$("html:not(:animated)"+( ! $.browser.opera ? ",body:not(:animated)" : "")).animate({scrollTop: temptop+'px',scrollLeft: templeft+'px'}, {duration: 3000, easing: "easeInOutExpo"});
тормозит.
Пример: vintage.skulditsky.kz/index.html
Специалисты по JQuery, помогите разобраться!
$("html:not(:animated)"+( ! $.browser.opera ? ",body:not(:animated)" : "")).animate({scrollTop: temptop+'px',scrollLeft: templeft+'px'}, {duration: 3000, easing: "easeInOutExpo"});
Проблемы с созданием иерархического дерева на jQuery?
Пытаюсь сделать для одного из своих проектов «иерархическое дерево» (по сути аналог jQuery Treeview, jsTree и тому подобных плагинов), в котором также задействован функционал drag & drop. Для задействования возможности drag & drop использую jQuery UI. Всё вроде получается, но застопорился на одном моменте.
Лирическое отступление: да, я знаю что это по сути написание велосипеда, и что можно не париться и взять один из распространённых плагинов, но для меня важно научиться делать разные фишки на jQuery с drag & drop, потому что он ещё много где нужен будет в моём проекте.
Значит что имеем. Есть ненумерованный список <ul></ul> элементы которого представляют собой категории. У категорий могут быть подкатегории, а у тех, в свою очередь, свои подкатегории и т.д. Если у категории есть подкатегории, то слева от неё отображается иконка «плюсик», нажав на который, произойдёт запрос на сервер и в ответ мы получим необходимый список подкатегорий, который автоматически вставится в виде подсписка, т.е. вот так:
<ul>
<li class="categories close" id="cat1" rel="1">category A</li>
<li class="categories open" id="cat2" rel="2">category B</li>
<ul id="p2">
<li class="categories" id="cat4" rel="4">subcategory D</li>
<li class="categories" id="cat5" rel="5">subcategory E</li>
<li class="categories" id="cat6" rel="6">subcategory F</li>
</ul>
<li class="categories close" id="cat3" rel="3">category C</li>
</ul>
Лирическое отступление: да, я знаю что по правилам синтаксиса HTML подсписок <ul id=«p2»></ul> должен находится внутри родительского элемента <li></li>, но в таком случае вместе с категорией «category B» будет таскаться за курсором и весь подсписок подкатегорий, чего мы никак не хотим.
С помощью jQuery UI я делаю каждый элемент <li></li> «перетаскиваемым» (draggable), и одновременно «принимающим» (droppable).
Дальше я по задумке хочу сделать следующим образом: пользователь захватывает и начинает «таскать» категорию над списком других категорий; как только таскаемый им элемент оказывается над одной из категорий, происходит запрос на сервер, мы получаем и вставляем список подкатегорий. Делается это для того, чтобы облегчить жизнь пользователю: если пользователь хочет сделать категорию «category C» подразделом «subcategory F», то ему будет достаточно захватить «category C», задержать её над «category B» чтобы открылся список подкатегорий, после чего перетащить и отпустить над «subcategory F».
Всё вроде получается отлично, но есть одно НО, на котором я и застопорился: пользователь захватывает «category C» и держит её над «category B», тем самым заставляя открытся список подкатегорий; в момент появления списка подкатегорий, удерживаемый элемент «category C» уезжает вниз относительно курсора ровно на высоту всего подсписка категорий. Именно эту проблему мне не удаётся пока побороть.
Как я пытался решить эту проблему:
1) в момент вызова функции over (вызывается когда draggable-элемент находится над droppable-элементом и находится в состоянии готовности) пробовал запоминать позицию перетаскиваемого элемента в глобальных переменных вот так:
...
over:function(event,ui) {
_cury = ui.position.top;
_curx = ui.position.left;
...
}
...
после этого запрашивать список подкатегорий и уже после их вставки заново присваивать перетаскиваемому элементу координаты:
...
ui.position.top = _cury;
ui.position.left = _curx;
...
В итоге не сработало.
2) я подумал, что возможно в момент появления подсписка и соответственно «отпрыгивания» перетаскиваемого элемента, он уходит из состояния готовности и вызывается функция out. Тогда я просто перенёс задание запомненных координат в функцию out:
...
out:function(event,ui) {
ui.position.top = _cury;
ui.position.left = _curx;
...
}
...
Это тоже не сработало. Также пробовал использовать ui.offset вместо ui.position — тоже не помогло. Т.е. получение координат перетаскиваемого элемента происходит нормально, корректно. А вот попытка задать их обратно не приводит ни к каким результатам. Может кто подскажет решение?
Скачать полный код примера со всеми файлами и подробными комментариями.
Смотреть пример онлайн.
<ul>
<li class="categories close" id="cat1" rel="1">category A</li>
<li class="categories open" id="cat2" rel="2">category B</li>
<ul id="p2">
<li class="categories" id="cat4" rel="4">subcategory D</li>
<li class="categories" id="cat5" rel="5">subcategory E</li>
<li class="categories" id="cat6" rel="6">subcategory F</li>
</ul>
<li class="categories close" id="cat3" rel="3">category C</li>
</ul>...
over:function(event,ui) {
_cury = ui.position.top;
_curx = ui.position.left;
...
}
......
ui.position.top = _cury;
ui.position.left = _curx;
......
out:function(event,ui) {
ui.position.top = _cury;
ui.position.left = _curx;
...
}
...
Алгоритм определения визуально скрытых HTMLDom элементов
Есть задача: по коду html-страницы программно определить список скрытых (не видимых глазом) html элементов.
Первое что приходит в голову: взять node.js + jquery (http://habrahabr.ru/blogs/javascript/104761/) и поиграть с псевдоселектором :visible, но есть сомнение, что в данном случае не будут учитываться css файлы.
Вопрос знатокам: можно ли научить данную свзяку учитывать css файлы и как это сделать?
PS. также буду благодарен другим способам решения задачи на базе linux.
Распространенность JVM
Нужен примерный процент распространенности JVM на десктопах.
Будет еще лучше если найдутся данные по платформам.
Знаю что JVM уже есть «из коробки» в большинстве популярных дистров Linux, а также на MacOS. А вот как дело обстоит на Windows? Особенно на ХР с разными сервис-паками.
Javascript tree?
В общем, я работаю в составе команды над одним больший проектом на базе php и jquery. Так как разработка ведется в экстриме, в некоторых местах используются разные плагины для прорисовки дерева и нет единного апи для таких вещей. В связи с чем ищу один плагин, который бы помог все это дело унифицировать.
Требования:
Драг и дроп (использование ctrl, события)
Апи со стороны javascript для вызова перерисовки части дерева, добавления, изменения элемента
Встроенное контекстное меню и апи для него
На данный момент я склюняюсь вот к этой вещи www.jstree.com/demo
Если вы знаете варианты получше, или даже у вас припрятан silver bullet, вы мне очень поможете
Большая нагрузка на браузер при вкл jquery
Добрый день. Подскажите пожалуйста как решить такую проблему. Установил на сайт плагин лупы для изображений. Все подключается и работает, но так как это интернет магазин на одной странице может находиться до 20 картинок и когда наводится мышка на одно из изображений запускается функция для всей страницы. Каким образом можно ее ограничить только одной картинкой? Навел — загрузилась картинка — подключилась функция — убрал мышку — отключилась и так по кругу…
вот какую функция я смог прописать для включения библиотеки:
<script type=\'text/javascript\'>
$(document).ready(function(){
$(\'#zoom1\').hover(function(){
$.getscript(\'js/cloud-zoom.1.0.2.min.js\', function(){
testAjax();
});
})
});
</script>
ссылка на лупу: www.professorcloud.com/mainsite/cloud-zoom.htm
З.Ы. Просто подключить лупу в хэдер как написано в примере не получится, потому что вывод каталога на сайте сделан целиком на аяксе.
$(document).ready(function(){
$(\'#zoom1\').hover(function(){
$.getscript(\'js/cloud-zoom.1.0.2.min.js\', function(){
testAjax();
});
})
});
</script>
jQuery: методы $.add() и $.append() работают некорректно?
написал небольшой примерчик. он должен добавлять по клику на в него элемент . познакомился с jQuery недавно и работа конкретно этих функций $.add() и $.append() вызывает недоумение. вот вкратце код:
<style>
.div {
background-color: yellow;
width: 50pt;
height: 50pt;
}
</style>
<script type="text/javascript">
$("p #add").click(function() {
$(this).add("div").css("class", "div");
});
$("p #append").click(function() {
$(this).append("<div class='div'></div>");
});
</script>
<p id="add">click me and i'll try to show you a div with $.add()</p>
<p id="append">click me and i'll try to show you a div with $.append()</p>
ссылки на API:
$.append()
$.add()
у меня при клике на в обоих случаях ничего не происходит. wtf?
полностью скачать и открыть test.html в браузере можно отсюда
UPD: код jQuery теперь:
$(document).ready(function(){
$("p#add").click(function() {
$(this).add("div").css("class", "div");
});
$("p#append").click(function() {
$(this).append("<div class='div'></div>");
});
});
$.append() заработал, $.add() — по прежнему нет
<style>
.div {
background-color: yellow;
width: 50pt;
height: 50pt;
}
</style>
<script type="text/javascript">
$("p #add").click(function() {
$(this).add("div").css("class", "div");
});
$("p #append").click(function() {
$(this).append("<div class='div'></div>");
});
</script>
<p id="add">click me and i'll try to show you a div with $.add()</p>
<p id="append">click me and i'll try to show you a div with $.append()</p>
$(document).ready(function(){
$("p#add").click(function() {
$(this).add("div").css("class", "div");
});
$("p#append").click(function() {
$(this).append("<div class='div'></div>");
});
});
JQuery не устанавливает атрибуты onmouseover и onmouseout в google chrome?
На событие onload вешается функция которая уменьшает большие изображения на странице.
При наведении курсора мыши картинка должна становится оригинального размера. Если делать так
$(this).attr({
width: width_resized,
onmouseover: '$(this).attr("width", ' + width + ');',
onmouseout: '$(this).attr("width", ' + width_resized + ');'
});
то в лисе и опере работает отлично, а в хроме устанавливается только ширина.
$(this).attr("onmouseover", '$(this).attr("width", ' + width + ');');
Так тоже не работает.
В чем может заключаться проблема?
$(this).attr({
width: width_resized,
onmouseover: '$(this).attr("width", ' + width + ');',
onmouseout: '$(this).attr("width", ' + width_resized + ');'
});$(this).attr("onmouseover", '$(this).attr("width", ' + width + ');');
Произвести модификацию в jQuery UI и получить сжатый вариант?
Некоторое время назад я писал о том, что пишу некий «аналог jQuery Treeview». Благодаря подсказке nikitammf проблему «отпрыгивающего элемента» я поборол.
Но появилась другая проблема. Чтобы описать её, я сначала объясню каким образом плагин jQuery UI Draggable определяет находится ли в данный момент переносимый элемент над droppable-элементом.
В момент начала переноса захваченного элемента вызывается метод $.ui.ddmanager.prepareOffsets(this, event) (строка 152 файла /development-bundle/ui/jquery.ui.draggable.js). Этот метод запоминает в кэше абсолютные координаты всех droppable-элементов. Затем в процессе переноса draggable-элемента, его меняющиеся координаты постоянно сверяются с координатами droppable-элементов из кэша, и когда наступает пересечение координат — плагин опознаёт, что захваченный элемент оказался над тем-то droppable-элементом (т.е. наступает событие «hover»). Кэш координат droppable-элементов всегда рассчитывается только один раз — в момент начала переноса захваченного элемента.
Как это конфликтует с моим кодом? Как я уже писал, в момент наступления события «hover» у меня отсылается запрос на сервер, который возвращает список дочерних элементов, которые вставляются вложенным списком. Поскольку вставляется вложенный список, координаты последующих (лежащих ниже) droppable-элементов при этом меняются, но кэш координат об этом не знает.
В результате если захватить самый первый элемент, задержать над вторым элементом (дождавшись появления вложенного списка) и дальше вести его вниз, то третий и последующий элементы среагируют ещё задолго до того, как перетаскиваемый элемент реально окажется над ними (потому что в кэше координат остались старые координаты и он по-прежнему думает, что все droppable-элементы остались на своих изначальных местах).
Как решить эту проблему, впринципе понятно: пересчитать кэш координат (вызвать метод $.ui.ddmanager.prepareOffsets(this, event)) после вставки дочернего списка.
Но так просто вызвать этот метод не получается: его имя уже изменено в процессе компоновки и минимизации конструктором jQuery UI (я использую не гигантский архив с кучей js-файлов, а собранный конструктором один файл).
Как здесь быть? Как вызвать метод, имя которого уже «обфусцировано»?
Онлайн-пример собственно моей разработки тут.
"Резиновость" элементов js
Есть ли способ определить, что размер какого-либо элемента страницы задан в %? в DOM как я понимаю, хранятся уже вычисленные значения, автоматически пересчитываемые при ресайзе.
Можно поставить вопрос иначе: можно ли каким либо образом изменять такие автоматически вычисленные размеры без потери «резиновости»?
jQuery: как отловить событие перехода внутри документа по анкорам?
Страница перелинкована с помощью анкоров (теги A c параметром name). Вверху содержание: список ссылок на нижележащие подразделы. Сейчас я худо-бедно ловлю такие переходы с помощью события scroll(), но это неверно и глючно. Как это сделать правильно?
Redirect_to убивает JS запрос в Rails 3?
Форма с :remote => true сабмитит апдейт записи в метод update, тот в свою очередь если всё хорошо отправляет через redirect_to на метод show, а show рендерит js, отображающий новую запись. И всё хорошо в опере, но под фф после редиректа на show уходит уже «as HTML». Как заставить перенаправлять тоже на JS?
Относительное позиционирование с jQuery
Помогите спозиционировать элементы относительно друг друга с учетом скроллинга в разных браузерах.
Сделал дополнительный блок при наведении мышки. Вот кусок кода, отвечающего за расчет положения нового блока на странице:
...
var mytop = image.offset().top - (container.height() /2) + image.height()/2 + $(document).scrollTop();
var myleft = image.offset().left - (container.width() /2 ) + image.width()/2 + $(document).scrollLeft();
if($.browser.msie){
mytop = image.offset().top - (container.height() /2) + image.height()/2;
myleft = image.offset().left - (container.width() /2 ) + image.width()/2;
}
container.offset({top: mytop, left: myleft});
container.show();
...
Т.е. смотрим координаты текущего элемента, и если браузер IE, то добавляем высоту/ширину скроллинга.
Буквально вчера то ли Chrom обновился, то ли jQuery (подгружает последний из Google CDN), но Chrome стал добавлять scroll (может он IE представляется). Может быть есть путь спозиционировать элемент без прописывания всех версий «глючащих» браузеров?
var mytop = image.offset().top - (container.height() /2) + image.height()/2 + $(document).scrollTop();
var myleft = image.offset().left - (container.width() /2 ) + image.width()/2 + $(document).scrollLeft();
if($.browser.msie){
mytop = image.offset().top - (container.height() /2) + image.height()/2;
myleft = image.offset().left - (container.width() /2 ) + image.width()/2;
}
container.offset({top: mytop, left: myleft});
container.show();
...
Загрузка своего Javascript в контент iFrame
Здравствуйте, подскажите пожалуйста, есть iFrame на странице, необходимо сделать так, чтобы в этот iFrame был включен мой javascript код ( в body)
например
<\iframe src="http://apple.com">
где на сайте apple.com открытом в iframe необходимо в тег Body добавить, например:
<script src="http://code.jquery.com/jquery-1.4.4.js"></script>
Пытался использовать метод Jquery.contents(), не получилось, подскажите, как решить проблему?
[jQuery] По нажатию ссылки изменялся URL
Добрый день.
Подскажите пожалуйста, как реализовать следующее:
На странице есть некие ссылки. По нажатию на них должен изменятся один из GET-параметров и обновляться страница.
Проблема в том, что id ссылки должно быть в качестве GET-параметра.
Сейчас у меня сделано так:
_ПАРАМЕТР_
jQuery('.groups').click(function() {
window.location = jQuery.query.set(«group», _ПАРАМЕТР_);
});
Парсинг, Jquery, Userscript
Благодаря этой статье познакомился с написанием userscripts на jquery. Сделал два работающий скрипта по вытягиванию нужных мне имейлов, а на третьем примере почему-то не работает.
Страница для парсинга: www.gapa.de/_gastgeberliste/ (Выбрать любой Unterkunftsart и нажать на кнопку Finden)
Скрипт: efrolov.ru/gapa/gapa.user.js
Задача: Вытянуть имейлы с каждой страницы.
Проблема: Jquery не может обратиться к классу. То есть так могу добавить $("#footer").append(' hello!');,
а вот так уже не работает: $(".ukresultheader").append(' hello!');
Кто-нибудь может подсказать почему не работает?
jQuery UI Dialog, как повесить событие на нажатие ссылки внутри него?
Сейчас код выглядит так:
<div id="address-wrapper">
<a id="address-select" href="#" title="Нажми">Нажми</a>
</div>
<div id="dialog-form" title="Выберите ваш город">
<label for="search">Поиск</label>
<input type="text" name="search" id="search" class="text ui-widget-content ui-corner-all" />
<input type="button" name="post" id="search-button" value="Поиск" />
<br /><br />
<div id="results"></div>
</div>
<script type="text/javascript">
function searchSubmit() {
$.ajax({ type: "POST",
url: "gni_ajax.asp",
data: "query=" + $("#search").val(),
success: function(data){
$("#results").empty();
$("#results").append(data);
return false;}
});
};
$('#search').keypress(function(event) {
if (event.keyCode == '13') {
searchSubmit();
}
});
$("#search-button").click(function () { searchSubmit(); });
$("#dialog-form").dialog({
autoOpen: false,
height: 400,
width: 400,
modal: true,
buttons: {
"Отмена": function() {
$( this ).dialog("close");
}
},
close: function() {
alert("i'm closing!");
}
});
$("#address-select").click(function() {
$( "#dialog-form" ).dialog( "open" );
});
$(".addr").click(function() {
alert($(this).text());
alert(this.id);
$("#dialog-form").dialog("close");
});
</script>
Надо было мне, чтобы при нажатии на одну из ссылок, возвращенных аяксом (разные числовые id и тексты, один класс .addr, ее текст и значения вставлялись в input. Но добиться этого я не смог. Решил хотя бы посмотреть, что выдаст alert. Но он и того не показал, никакой реакции на нажатие нет. Если вешаю событие на нажатие address-select, то все срабатывает хорошо. Но эти ссылки, внутри диалога которые — не работают. Не то, что алерт, но и сам диалог не закрывается. Даже если указать не ".addr", а просто «a» Проверял в firebug, элементы создаются нормально:
<a href="#" id="7700000000000" class="addr">Москва г</a>
Что с этим делать? Ведь должно работать же!
<div id="address-wrapper">
<a id="address-select" href="#" title="Нажми">Нажми</a>
</div>
<div id="dialog-form" title="Выберите ваш город">
<label for="search">Поиск</label>
<input type="text" name="search" id="search" class="text ui-widget-content ui-corner-all" />
<input type="button" name="post" id="search-button" value="Поиск" />
<br /><br />
<div id="results"></div>
</div>
<script type="text/javascript">
function searchSubmit() {
$.ajax({ type: "POST",
url: "gni_ajax.asp",
data: "query=" + $("#search").val(),
success: function(data){
$("#results").empty();
$("#results").append(data);
return false;}
});
};
$('#search').keypress(function(event) {
if (event.keyCode == '13') {
searchSubmit();
}
});
$("#search-button").click(function () { searchSubmit(); });
$("#dialog-form").dialog({
autoOpen: false,
height: 400,
width: 400,
modal: true,
buttons: {
"Отмена": function() {
$( this ).dialog("close");
}
},
close: function() {
alert("i'm closing!");
}
});
$("#address-select").click(function() {
$( "#dialog-form" ).dialog( "open" );
});
$(".addr").click(function() {
alert($(this).text());
alert(this.id);
$("#dialog-form").dialog("close");
});
</script>
<a href="#" id="7700000000000" class="addr">Москва г</a>
jQuery и плагин Form: загрузка файлов
Итак, проблема:
Делаю отправку формы на сервер посредством метода ajaxSubmit() вышеупомянутого плагина. Формы без элемента file работают отличненько. Результат возвращается в виде JSON-строки.
Проблемы возникают, когда на форму добавляется выбор файла. В шаблоне формы у меня автоматом появляется соответствующий enctype. Плагин все отправляет, результат приходит в нужном виде (смотрел через firebug). Первая проблема — браузер предлагает сохранить результат в виде файла. Погуглив, пришел к тому, что Content-Type ответа пришлось поменять с 'application/json; charset=UTF-8' на дефолтный 'text/html; charset=utf-8'.
Теперь ответ приходит «в студию», но success-функция не отрабатывает. Судя по всему, теперь затычка в формате ожидаемого результата — я ведь указывал опцию dataType: 'json'. Убрал опцию — success отрабатывает, но, судя по всему, плагин пытается сконвертировать результат в формат html, т.к. добавляются тэги типа HEAD и BODY. Причем firebug показывает, что изначальный результат приходил верный, т.е. это косяк именно плагина.
Кто-нибудь встречался с такими проблемами? Как их решать? Использую jQuery 1.4.2 (пробовал переключиться на 1.3.2 — те же грабли) и Form 2.5.1 (вроде как последняя версия).
Менеджер библиотеки?
Привет хабранарод!
Следующая ситуация. На протяжении многих лет собираю интересные книги, литературу по компьютерной тематике, техническую, художественную и т.д. В результате имею 15 428 файлов, общим размером 13,5 ГБ.
Чтобы хоть как-то все это систематизировать — храню по каталогам и подкаталогам.
12.01.2011 11:16 !new
05.04.2010 17:06 ! найти
26.01.2010 19:11 Cheat-Sheat
25.02.2010 11:01 CrackGuide
19.05.2009 15:44 File Formats
28.04.2009 09:45 ICQ
01.12.2009 12:27 Internet
10.01.2011 17:55 Languages & Guides
27.01.2010 13:31 Linux
27.01.2010 13:31 other
06.01.2010 16:46 Phone
15.06.2010 09:50 Tutorials, Journals
18.03.2010 18:37 Web
04.05.2009 15:20 Wiki
26.01.2010 19:21 Windows
28.04.2009 09:45 WinMobile
20.12.2010 12:10 Авторефераты_Диссера
20.09.2010 09:26 Законы, указы
26.01.2010 19:05 История
27.01.2011 12:31 Книги
07.06.2010 09:56 Лекции
17.05.2010 09:54 Личные работы
26.01.2010 18:50 Психология
27.02.2010 14:44 Статьи
01.12.2009 18:18 Философия
01.06.2009 09:34 Художественная
Причем каждый из каталог также структурирован. Например:
Содержимое папки W:\Library\Статьи
29.01.2010 11:26 WiFi
29.01.2010 11:26 XSS
29.01.2010 11:26 алгоритмы
17.02.2010 12:26 анализ кода, дизассемблирование, декомпиляция
01.02.2010 13:46 аналитика
26.01.2010 16:11 антивирусы
26.01.2010 16:09 базовые понятия
28.04.2009 09:46 базы данных
26.01.2010 17:09 безопасность и ПО
27.01.2010 17:15 биология
04.05.2009 15:22 виртуализация
26.01.2010 17:09 кластеризация, индексация, рубрикация
19.05.2009 11:15 компиляторы
28.04.2009 09:46 конференции
22.05.2009 14:13 крипто
08.02.2010 16:42 моделирование
26.01.2010 16:21 нейросети и генетические алгоритмы
01.02.2010 16:32 обработка изображений, распознавание образов
05.04.2010 17:06 обработка речи
22.09.2010 11:53 обработка текстов
01.12.2009 18:15 описания вирусов
04.05.2009 15:19 отчеты, проекты
31.03.2010 14:05 программирование
04.05.2009 08:57 роботы
26.01.2010 16:38 сеть и Интернет
04.05.2009 15:14 системы защиты
29.01.2010 11:25 СОА
19.05.2009 10:58 спам
26.01.2010 19:15 стеганография
07.07.2010 09:43 теория, математика, информатика
02.06.2009 15:51 файловые системы
29.01.2010 16:44 физика
28.04.2009 09:46 философия
Вот здесь и начинается жесть. Есть например статья «Структурные модели и кодирование состояний автоматов.pdf». Ее можно отнести и в раздел программирование / алгоритмы / автоматы, также в математика / автоматы, также в программирование / моделирование и т.д…
А делать дубликаты не хочется. В то же время иногда хочется найти все на тему «автоматы» например.
Вот и пришел к выводу что нужна программа менеджер библиотеки, в которой можно было бы легко задавать теги для файлов, осуществлять поиск по ним, и главное!!! чтобы была единая база, переносимая с компа на комп, хранящая эти книги и теги к ним.
Мечтаю просто при добавлении книг — давать им тег «непрочитанные» а после чтения отмечать «прочитанные». Тогда сразу видно, что читал, а что — нет. Иной раз как глянешь в библиотеку и сразу мысль «вот ё!!!, что из этого читал а что нет???». 15000 Файлов!!! И они плодятся как грибы :)
Вот и вопрос.
Кто и как с этим борется? Какие программы менеджеры-библиотек вы используете???
UPD: особенно интересуют программы, хранящие свои базы локально, а не в сети.
Взаимодействие между замыканиями в JavaScript?
Есть замыкания:
(function () {
// do something
})()
(function () {
// do another thing
}) ()
Как бы вы организовали взаимодействие между объектами в этих замыканиях?
Собственно, вопрос возникает при использовании jQuery в больших проектах… вот есть, к примеру, диалоговое окно на jQuery UI. Но это как бы частный случай общей проблемы.
Обычно у меня это выглядит так:
<div id="dialog">
<p>something</p>
</div>
<button id="show_dialog_btn">Show Dialog</button>
<script>
jQuery(function ($) {
$("#dialog").dialog({
куча параметров,
ну просто тьма всяких настроек
и разные колбэки,
buttons: {
OK: function () {
// что-нибудь родить....
}
}
});
$("#show_dialog_btn").click(function () {
$("#dialog").dialog('open');
});
});
</script>
Диалоговое окно в этом случае, фактически состоит из НТМЛ разметки и джаваскрипт кода. Для простоты опустим ЦСС. Теперь, чтобы создать это же окно на другой странице, нужно либо копировать либо… А вот тут начинаются сложности… Если параметры окна зависят от каких-либо параметров в текущем замыкании, Допустим оно по нажатию кнопки Ок, должна быть вызвана «местная» для замыкания функция. Как быть?
(function () {
// do something
})()
(function () {
// do another thing
}) ()<div id="dialog">
<p>something</p>
</div>
<button id="show_dialog_btn">Show Dialog</button>
<script>
jQuery(function ($) {
$("#dialog").dialog({
куча параметров,
ну просто тьма всяких настроек
и разные колбэки,
buttons: {
OK: function () {
// что-нибудь родить....
}
}
});
$("#show_dialog_btn").click(function () {
$("#dialog").dialog('open');
});
});
</script>
Увеличить часть изображения на Jquery
Часто видел на сайтах, когда водят по картинке мышкой и увеличивается часть, где водят мышкой, в отдельном блоке на сайте. Ищу такой джейкуэри плагин. Не знает ли кто название? А то что-то ищу и найти не могу никак.
Отправка булевых значений в запросах jQuery.ajax()
$.ajax({
url : uri,
type : 'post',
data : {someBooleanVar1: false, subVar: {someBooleanVar2: true}}
});
Проблема в том, что сервер получит переменные someBooleanVar1 и someBooleanVar2 в виде строк «false» и «true», а не «0» и «1».
Вопрос в том, есть ли в jQuery какой-то параметр или метод автоматизирующий конвертацию булевых значений в 0/1? Ну или если средствами jQuery такое не реализовать, то можеть кто-нибудь знает простенький способ обойти рекурсивно объект заменив boolean на number.
Спасибо!
url : uri,
type : 'post',
data : {someBooleanVar1: false, subVar: {someBooleanVar2: true}}
});
Карусель картинок для интернет-магазина
Хочется на странице раздела с товарами интернет-магазина, отображать не одну картинку, а сразу все что присвоены данному товару — в-виде карусели, меняющихся картинок через небольшой интервал времени.
Подскажите пожалуйста возможно кто то уже подобное делал. JCarusel и прочие навороченные карусели слишком сильно грузят и при большом кол-ве товаров подвисают. Нужно что-то совсем легкое желательно на JQuery.
Dual license: Можно ли использовать в коммерческих продуктах jQuery?
jQuery распространяется под двойной лицензией MIT or GPL Version 2.
Что это значит для разработчика? Может ли он использовать jQuery без ограничений в своих коммерческих продуктах? В том числе использовать на свой код собственную коммерческую лицензию и скрывать исходные коды?
Асинхронная загрузка XML и Google Maps в jQuery
Ситуация: загружаются XML-файл и карты Гугла, чтобы данные из XML на ней отобразить. Делается всё асинхронно, требуется отследить, когда оба запроса выполнены.
Единственный простой способ, который я нашёл — Deferred objects в jQuery.
Пишем
function loadXML() {
return $.ajax({ url: 'data.xml', dataType: 'xml' });
}
Возвращаемый объект засовываем в $.when
$.when( loadXML(), ... ).then(function(){
doSomethind();
});
Проблемы возникают с загрузкой карты. Гугл предлагает следующий код для асинхронной загрузки:
function loadScript() {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "http://maps.google.com/maps/api/js?sensor=false&callback=initialize";
document.body.appendChild(script);
}
Хочется знать, когда скрипт будет загружен и произойдёт обращение к initialize(). Первая мысль — запихать в initialize() ручное создание deferred-объекта и возвращать .promise(), но непонятно, что же добавить в $.when, чтобы тот сработал после того, как все методы API карт стали доступны.
Спасибо.
return $.ajax({ url: 'data.xml', dataType: 'xml' });
}
doSomethind();
});
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "http://maps.google.com/maps/api/js?sensor=false&callback=initialize";
document.body.appendChild(script);
}
Jquery, load, before и подобные — ими добавляю input`ы — но в POST запросе этих данных нет — почему?
есть конструкция вида
<form>
<table>
<tr> <td> <input name="hotel[]"> </td> </tr>
</table>
</form>
сначала эту таблицу подобным образом заполняют через load потом через before — ну или подобными — append и прочие — в итоге на странице все формируется как надо. но данные из таким образом добавленных полей в запросе не отправляются. почему так происходит? и можно ли это исправить или обойти
<form>
<table>
<tr> <td> <input name="hotel[]"> </td> </tr>
</table>
</form>
Перенос option между двумя select
Есть два select, один все услуги предприятия, второй — только выбранные услуги. Все услуги формируются в левом селекте и при клике — переносятся в правый. При клике в правом — переносятся обратно.
Все красиво, все работает.
Переношу так:
$('#select1 option').live('click', function() {
var html = this.outerHTML;
$(this).remove();
$('#select2').append(html);
})
$('#select2 option').live('click', function() {
var html = this.outerHTML;
$(this).remove();
$('#select1').append(html);
})
Оптион добавляется в конец.
Вот и вопрос: как при обратном переносе засунуть оптион на свое место, а не в конец?
Ну то есть, я выбрал 2,3 оптион, слева остались тока 1,4. Как понять, что оптион 3 при повторном клике в правом селекте должен вернуться между 1 и 4 слева, учитывая, что 2го слева нет, а может не быть и 4го?
Или как отсортировать оптионы после вставки в конец списка, по значению value?
$('#select1 option').live('click', function() {
var html = this.outerHTML;
$(this).remove();
$('#select2').append(html);
})
$('#select2 option').live('click', function() {
var html = this.outerHTML;
$(this).remove();
$('#select1').append(html);
})
Передача параметров в функцию при клике на ссылку (JQuery)?
На чистом JavaScript это выглядит как то так:
<sсript><br/>
function toFunction(m1, m2) {<br/>
alert(m1 + ' - ' + m2);<br/>
}<br/>
</sсript><br/>
<а href="javascript:toFunction(10,'text')" >Ссылка</а>
А Вот как это сделать по правилам JQuery:
<sсript><br/>
$(document).ready(function() {<br/>
$(".urlparam").click(function () {<br/>
<br/>
alert(m1 + ' - ' + m2);<br/>
<br/>
});<br/>
});<br/>
<а href="#" class=«urlparam» >Ссылка</а>
<sсript><br/>
function toFunction(m1, m2) {<br/>
alert(m1 + ' - ' + m2);<br/>
}<br/>
</sсript><br/>
<а href="javascript:toFunction(10,'text')" >Ссылка</а><sсript><br/>
$(document).ready(function() {<br/>
$(".urlparam").click(function () {<br/>
<br/>
alert(m1 + ' - ' + m2);<br/>
<br/>
});<br/>
});<br/>
Проблемы с plupload?
Пытаюсь сделать мультизагрузку файлов различных форматов для проекта, использую для этого плагин plupload. Проблема в том, что он у меня работает только с изображениями и только с обязательным изменением размера их.
Вот даже взял файлы из примера, который идёт вместе с архивом плагина.
Подключаем плагин и библиотеки:
...
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("jquery", "1.3");
</script>
<link rel="stylesheet" href="css/plupload.queue.css" type="text/css" media="screen" />
<script type="text/javascript" src="../js/gears_init.js"></script>
<script type="text/javascript" src="http://bp.yahooapis.com/2.4.21/browserplus-min.js"></script>
<script type="text/javascript" src="../js/plupload.full.min.js"></script>
<script type="text/javascript" src="../src/javascript/jquery.plupload.queue.js"></script>
...
Инициализируем плагин и задаём настройки:
$(function() {
var uploader = new plupload.Uploader({
runtimes : 'gears,browserplus,html5,html4',
browse_button : 'pickfiles',
max_file_size : '10mb',
url : 'upload.php',
resize : {width : 320, height : 240, quality : 90},
filters : [
{title : "Image files", extensions : "jpg,gif,png"},
{title : "Zip files", extensions : "zip"}
]
});
Создаём необходимые контейнеры:
<form id="submit-form" method="post" action="dump.php">
<h1>Custom example</h1>
<p>Shows you how to use the core plupload API.</p>
<div>
<div id="filelist">No runtime found.</div>
<br />
<a id="pickfiles" href="#">[Select files]</a>
<a id="uploadfiles" href="#">[Upload files]</a>
</div>
<input type="submit" />
</form>
Файл upload.php остаётся один в один как идёт с архивом плагина, за исключением того, что изменён адрес папки, куда перемещать загружаемые файлы.
Что в итоге?
Изменение размера изображений мне совсем не нужно. Что мне действительно нужно — аяксовая мультизагрузка (и не только изображений, а большого перечня форматов файлов).
С приведённым кодом у меня нормально работает только загрузка изображений. Файлы любых других форматов на прогресс-баре показывает что загрузились полностью (100%), но в действительности никакого файла не появляется и «успешного ответа» от скрипта загрузки не приходит.
Firebug при этом показывает ошибку, но сам ответ — пустой.

Как это получается — сам не понимаю. Ведь все варианты upload.php заканчиваются хоть каким-нибудь ответом JSON, а чтобы ничего не пришло в ответ — получается должно истечь время выполнения скрипта, хотя процесс загрузки длится всего несколько секунд (max_execution_time точно в разы больше).
Манипуляции с опцией изменения размера изображения
Если из настроек убрать опцию:
...
resize : {width : 320, height : 240, quality : 90},
...
либо задать её значение = false, либо передать пустой объект {} — тогда перестаёт работать даже загрузка изображений, всё начинает происходить точно так же, как со всеми остальными типами файлов (описано выше).
Отладка способом plupload
Поскольку Firebug в моём случае ничего полезного не говорил, внедрил в Javascript отладку, пример которой приводят сами авторы plupload.
Вывод отладочной информации для успешной загрузки файла (возвращаем на место опцию resize, загружаем исключительно изображения) можно посмотреть тут.
Вывод отладочной информации для неудачной загрузки (прогресс-бар показал 100%, но файл не появился, в ответ ничего не пришло, опцию resize убрали) можно глянуть здесь.
Технические данные
Если это важно, тестирую на локальной Win-машине, сервер nginx-0.9.4 (без Apache), PHP 5.3.5 как CGI, браузеры Firefox 3.6.15 и Google Chrome 10.0.648.127 beta.
Архив со всеми файлами примера.
...
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("jquery", "1.3");
</script>
<link rel="stylesheet" href="css/plupload.queue.css" type="text/css" media="screen" />
<script type="text/javascript" src="../js/gears_init.js"></script>
<script type="text/javascript" src="http://bp.yahooapis.com/2.4.21/browserplus-min.js"></script>
<script type="text/javascript" src="../js/plupload.full.min.js"></script>
<script type="text/javascript" src="../src/javascript/jquery.plupload.queue.js"></script>
...$(function() {
var uploader = new plupload.Uploader({
runtimes : 'gears,browserplus,html5,html4',
browse_button : 'pickfiles',
max_file_size : '10mb',
url : 'upload.php',
resize : {width : 320, height : 240, quality : 90},
filters : [
{title : "Image files", extensions : "jpg,gif,png"},
{title : "Zip files", extensions : "zip"}
]
});<form id="submit-form" method="post" action="dump.php">
<h1>Custom example</h1>
<p>Shows you how to use the core plupload API.</p>
<div>
<div id="filelist">No runtime found.</div>
<br />
<a id="pickfiles" href="#">[Select files]</a>
<a id="uploadfiles" href="#">[Upload files]</a>
</div>
<input type="submit" />
</form>...
resize : {width : 320, height : 240, quality : 90},
...