Редактор темы

Ucoz Js-скрипт «живого» поиска по сайту для ucoz

  • Автор темы Автор темы iCooLER
  • Дата начала Дата начала
Автор темы
я так понял ты тут пытался проверить если вот эти значения в строке
Код:
if ($query.length >= 3 && $action.match('search|dir|publ|load|news|stuff|blog|video|photo')) {
теперь вопрос, ты получить массив со значениями, и что дальше с ними делал ?

Блин, тратить время и объяснять очевидное я не хочу. Я говорил и повторюсь еще раз: в коде все ок! Грамотно ли он написан — возможно нет, я это признаю. Но увы ошибок там нет — в данном скрипте и в данной реализации все на своих местах!

Возможно функцию .match() я использовал в данном случае не совсем правильно. Тогда скажи как должно быть?! А то придираться ума хватает, а ты бы лучше свой вариант сделал и, если ты действительно гуру разработки — все это увидят. Не нужно для этого флудить в теме и говорить: «а вот это тут зачем? как прокоментируешь?» 😵
 
В данном коде нет ошибок! Да, в чем-то его можно доработать и будет более грамотно сделано, но ошибок там нет. Ты просто не прослеживаешь всю цепочку действий — что и как делается. Попробуй сам напиши и мы вместе посмотрим на твой результат 🙂 Да, он может быть будет лучше, а может и наоборот — но ты для начала сделай =)

Или по-другому — ты якобы указал на мой ошибки. Если ты там нашел ошибки, то видимо ты знаешь как их исправить? Попробуй убери для начала ошибочную по твоему строку —
$input = $(this) и ты увидишь, что будет 🙂
ок, на держи
Код:
$('form[action] input[name]').keyup(function() {
    var $this = $(this),
        query = $this.val(),
        form = $this.closest('form'),
        action = form.attr("action"),
        actionTest = new RegExp(/search|dir|publ|load|news|stuff|blog|video|photo/).test(action),
        search = new RegExp(/search/).test(action);
    if ( form.attr('id') == 'addEntForm' ) return false;
    if (query.length >= 3 && actionTest === true ) {
        $.ajax({
            url: ((search) ? action + '?q=' + query : action),
            type: ((search) ? 'GET' : 'POST'),
            data: ((search) ? {} : {query: $query, a: 2}),
            success: function(data){
                SearchLiveInto(data, query, $this);
            }
        });   
    } else $('.search-live').remove();
});
 
Автор темы
ок, на держи
Код:
$('form[action] input[name]').keyup(function() {
    var $this = $(this),
        query = $this.val(),
        form = $this.closest('form'),
        action = form.attr("action"),
        actionTest = new RegExp(/search|dir|publ|load|news|stuff|blog|video|photo/).test(action),
        search = new RegExp(/search/).test(action);
    if ( form.attr('id') == 'addEntForm' ) return false;
    if (query.length >= 3 && actionTest === true ) {
        $.ajax({
            url: ((search) ? action + '?q=' + query : action),
            type: ((search) ? 'GET' : 'POST'),
            data: ((search) ? {} : {query: $query, a: 2}),
            success: function(data){
                SearchLiveInto(data, query, $this);
            }
        });  
    } else $('.search-live').remove();
});

Ну вот — гораздо грамотнее! Нафиг целый день флуд разводил в теме? 😕

Я хз, что оказывается в js есть условие аналогично, как и в php : ((search) ? 'GET' : 'POST') — теперь буду знать.
search = new RegExp(/search/).test(action) — new RegExp я не очень изучал, нашел первое что подошло.

А это что блин?! var $this = $(this) 🙂
 
Автор темы
ок, на держи
Код:
$('form[action] input[name]').keyup(function() {
    var $this = $(this),
        query = $this.val(),
        form = $this.closest('form'),
        action = form.attr("action"),
        actionTest = new RegExp(/search|dir|publ|load|news|stuff|blog|video|photo/).test(action),
        search = new RegExp(/search/).test(action);
    if ( form.attr('id') == 'addEntForm' ) return false;
    if (query.length >= 3 && actionTest === true ) {
        $.ajax({
            url: ((search) ? action + '?q=' + query : action),
            type: ((search) ? 'GET' : 'POST'),
            data: ((search) ? {} : {query: $query, a: 2}),
            success: function(data){
                SearchLiveInto(data, query, $this);
            }
        });  
    } else $('.search-live').remove();
});

В функции $.ajax по умолчанию идет асинхронный запрос?
 
Ну вот — гораздо грамотнее! Нафиг целый день флуд разводил в теме? 😕

Я хз, что оказывается в js есть условие аналогично, как и в php : ((search) ? 'GET' : 'POST') — теперь буду знать.
search = new RegExp(/search/).test(action) — new RegExp я не очень изучал, нашел первое что подошло.

А это что блин?! var $this = $(this) 🙂
нечего! и так можно ! просто для удобство я всегда так делаю 😀 ) зато получил 6 дизлайков блин 😱
 
Автор темы
Я в курсе — но он изначально к этому придрался, а потом в своем варианте также сделал)
не к этому ! к тому что ты засунул $(this) в переменную $input и на других повторно вытаскивал $(this)
 
не к этому ! к тому что ты засунул $(this) в переменную $input и на других повторно вытаскивал $(this)
Вообщем и в этом коде есть изьяны, но они всегда есть и у всех, всегда есть то , что можно улучшить ) ну если только вообще там не 1 строка тривиального кода.
 
Вообщем и в этом коде есть изьяны, но они всегда есть и у всех, всегда есть то , что можно улучшить ) ну если только вообще там не 1 строка тривиального кода.
я не говорю что мой код ох..ый, да есть ошибки, даже сам несколько нашел, мой просто меньше жрет памяти (хотя это не заметно, но оно есть)
 
А поиск происходит по метатегам или по тайтлу?
 
молодцы,общими усилиями можете допиливать любой код и доводить до совершенства......
 
Исправь в коде, не == true, а === true
 
Автор темы
Код проверил ? Работает ?

тестировал на одном сайте, на остальных будет работать тоже. твой код я не использовал, только взял такую хрень new RegExp 🙂 но все же сделал в итоге проверку немного по-другому, хотя все тоже)
 

Похожие темы Последние темы Популярные темы

Назад
Сверху