<form action="/catalog/search/" class="search-form">
<fieldset>
<input name="s" class="input search-field" type="text" placeholder="Поиск по сайту" id="input-search" value="">
<div class="btn-search">
<input type="submit" class="search-go" value="" id="send-search" disabled="disabled">
</div>
</fieldset>
</form>
$('html').on('keyup','#input-search',function(e) {
if($(this).length == 0) {
$('#send-search').prop('disabled', true);
} else {
$('#send-search').prop('disabled', false);
}
});
$('html').on('click','#save,function() {
var v = $('.chosen-select').find('option:selected').val();
var t = $('.chosen-select').find('option:selected').text();
$.ajax({
type: 'POST',
url: 'send_url.php',
data: {v:v, t:t},
cache: false,
dataType: 'json',
timeout: 15000,
success: function(r) {
console.log(r);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(jqXHR, textStatus, errorThrown);
}
});
});
В третьей функции мы не можем использовать данные первой?
// где-то в одной далекой функции или событии собираю данные для запроса
var Id = '127';
var Name = 'Test';
var data = JSON.stringify({
Type:'Save',
Data: {
Id:Id,
Name:Name
}
}); // собираю JSON который будет отправлен, соотвественно можно отослать и не JSON
var s = {
type:'POST',
url:'conn.php',
data:data,
dataType:'json',
parent: 'thisFunction'
}; // подготавливаю данные для функции отправки
SendData(s); // вызываю саму функцию отправки
/////////////////////////////
function SendData(s) {
$.ajax({
type: s.type,
url: s.url,
data: s.data,
cache: false,
dataType: s.dataType,
timeout: 15000,
success: function(r) {
SendSuccess(r, s); // успех, шлем полученный ответ
},
error: function(jqXHR, textStatus, errorThrown) {
SendError(s); // ошибка, в SendError можно так же передать состояние ошибки, например SendError(s, textStatus)
}
});
}
function SendSuccess(r, s) {
if (s.parent == 'thisFunction') {
// вызываем необходимую функцию или событие, можем передать ответ r
}
}
function SendError(s) {
if (s.parent == 'thisFunction') {
// можем передать функции состояние ошибки, если логика работы вызвавшей или принимающей функции будет ожидать завершения какого-либо действия
}
}
// jquery
a = []; // где-то в глобале держим массив
$(window).on('keyup',function(e) {
console.log(e); // узнаем зачем нужен 'e'
// работаем в пределах window, можно изменить ХЗ что у Вас там
// так же можно сделать дополнительное условие if (e.key == 'Shift') {// если нажат Shift можно обнулить массив и начать все заново} или if (a[0] == 'Shift') {// проверка первой клавиши}
a.push(e.key); // пишем клавишу в массив
if (a.length > 1) {
// уже нажато две клавиши
// или тут можно сделать такое условие
if (a.indexOf('Shift') >= 0 && a.indexOf('ArrowRight') >= 0) {
console.log('условие выполнено');
move(a); // вызываем функцию
}
a = []; // обнуляем массив
}
});
function move(a) {
console.log(a);
}
На десктопе на объект повешено несколько событий, но на мобильниках эти события уже не должны срабатывать.
h = windows.height
w = windows.width
$(window).resize(function() {
h = windows.height;
w = windows.width;
});
Так получилось, что в десктопной и мобильных версиях один объект расположен совершенно в разных местах.
var delay = (function(){
var timer = 0;
return function(callback, ms){
clearTimeout (timer);
timer = setTimeout(callback, ms);
};
})();
function ChangeInput(t) {
// код для обработки и сохранения
}
$('html').on('keyup','input',function() {
var t = $(this);
delay(function(){
ChangeInput(t);
}, 1000); // чтобы не флудить, устанавливаем разумный time-out
});
var a = {"streams": {
"stream1": {"alive":0, "iframe":"адрес?id-1"},
"stream2": {"alive":1, "iframe":"адрес?id-2"},
"stream3": {"alive":1, "iframe":"адрес?id-3"}
}}
var res = [];
for (k in a.streams) {
// перебираем a.streams по ключам
if (a.streams[k].alive == 1) {
console.log('активно');
res.push(a.streams[k]); // собираем массив с alive == 1
} else {
console.log('не активно');
}
}
console.log(res[0]); // выводим первое значение из массива с alive == 1
// получить максимальный ID
var a = [];
$('.news').find('a').each(function () {
var i = $(this).attr('id');
a.push(i);
});
var MaxId = Math.max.apply(null, a);
// получить ID первого элемента
var Id = $('.news a').first().attr('id');
// или
var Id = $('.news a:first-child').attr('id');
// получить ID последнего элемента
var Id = $('.news a').last().attr('id');
// или
var Id = $('.news a:last-child').attr('id');
// проверяем блок на пустоту
var a = $('.news');
if (a.length) {
// блок не пустой
var Id = $('.news a').first().attr('id');
if (Id) {
// переменная не пуста
// можно что-то делать
console.log(Id);
} else {
console.log('нет Id');
}
} else {
console.log('news пуст');
}