Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с кодом, не знаю что делать 
:(
    Опции темы
Beos
Дата 9.11.2008, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 20.8.2007
Где: Latvia -> Riga

Репутация: нет
Всего: нет



Сразу уточню - этот скрипт повторяется (HTML и JAVASCRIPT) несколько раз на одной страничке. Как видите я использую jQuery.

uniqId() - выдает уникальный ID (microtime + rand)

Проблема в том, что когда скрипт повторяется, pjId - остается со значением последнего повтора и все (кроме последнего) click, keypress - ссылаются на последний повтор скрипта.

Помогите please  smile Если что то не понятно - спрашивайте  smile 

Код

<input class="pj-input" type="text" value="" maxlength="5" />

<a class="pj-button" href="javascript:void(0);">Go</a>

Код

<script type="text/javascript">

var pjId = uniqId();

$("input.pj-input").each(function() {

    if ($(this).attr("id") == \'\') {

        $(this).attr("id", "pj-input-"+pjId);

        $(this).keypress(function(e) {
            if (e.which == 13) {
                alert("Submit test1: "+$("#pj-input-"+pjId).val());
            }
        });
    }
});

$("a.pj-button").each(function() {

    if ($(this).attr("id") == \'\') {

        $(this).click(function() {
            alert("Submit test2: "+$("#pj-input-"+pjId).val());
        });
    }
});

</script>

PM MAIL   Вверх
ksnk
Дата 9.11.2008, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Если вспомнить о DOM'е, то вот эту $(this).attr("id") == \'\' конструкцию можно переписать так !this.id оно будет правильней и короче, так как ежели id'а нету, то attr выдает undefined со всеми вытекающими проблемами...

Ну, а то, что which поддерживается далеко не всеми броузерами я даже не буду упоминать ...




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Beos
Дата 10.11.2008, 02:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 20.8.2007
Где: Latvia -> Riga

Репутация: нет
Всего: нет



Комментарии там я забыл убрать (php: echo '...\'...')

P.S. На Mozilla все работает, пока это главное (оптимизация потом если понадобится). Но вот как решить мой вопрос? Я конечно сейчас поломаю голову, попробую массив сделать какой нибудь с id... Но можеть я это зря и в jquery есть что то готовое (сколько раз уже велосипед изобретал...  smile ).
PM MAIL   Вверх
Beos
Дата 10.11.2008, 03:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 20.8.2007
Где: Latvia -> Riga

Репутация: нет
Всего: нет



Вобщем вот как я решил проблему если кому интересно... думаю всё на уровне  smile 

Код

            if (typeof(pjIdArr) == "undefined")
                var pjIdArr = [];

            pjIdArr[pjIdArr.length] = uniqId();

            $("input.pj-input").each(function(i) {

                if (this.id == "") {

                    $(this).attr("id", "pj-input-"+pjIdArr[i]);

                    $(this).keypress(function(e) {
                        if (e.which == 13) {
                            alert("Submit test1: "+$("#pj-input-"+pjIdArr[i]).val());
                            return false;
                        }
                    });
                }
            });

            $("a.pj-button").each(function(i) {

                if (this.id == "") {

                    $(this).attr("id", "pj-button-"+pjIdArr[i]);

                    $(this).click(function() {
                        alert("Submit test2: "+$("#pj-input-"+pjIdArr[i]).val());
                        return false;
                    });
                }
            });

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0530 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.