powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JQuery выбор первой из выпадающего списка
10 сообщений из 10, страница 1 из 1
JQuery выбор первой из выпадающего списка
    #38158657
Virtuoz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С JQuery раньше не работал, но мне написали скрипт для сайта с использованием JQuery и вот возникла необходимость немного его доработать.

На сайте ( http://taxi24.dp.ua/) есть поле, например "Откуда", "Куда" в которые через Google API подбрасываются варианты названий улиц. И мне нужно доработать это поле так, чтобы после того как появляются варианты выбора и пользователь нажал Enter - первый из предложенных вариантов подкинулся в поле вводе ("Откуда").

Решение я нашел вот здесь: http://jsfiddle.net/QW59W/

У меня 2 вопроса:
1) Как прикрутить это решение к моему полю? (где и как её нужно вызвать?)
2) Почему перед определением функции стоит скобка? Что она означает?

Код: javascript
1.
 (function pacSelectFirst(input){ 



Заранее благодарен!
...
Рейтинг: 0 / 0
JQuery выбор первой из выпадающего списка
    #38158664
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Virtuoz1) Как прикрутить это решение к моему полю? (где и как её нужно вызвать?)
Желательно сделать тестовый пример - на нём и покажут...

Virtuoz2) Почему перед определением функции стоит скобка? Что она означает?
Скорее всего это конструкция

Код: javascript
1.
2.
3.
(function (){
   ...
})();


Потому как скобки ставятся, как минимум, парами ()...
...
Рейтинг: 0 / 0
JQuery выбор первой из выпадающего списка
    #38158685
Virtuoz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторСкорее всего это конструкция

Да, это такая конструкция, а что она означает?
...
Рейтинг: 0 / 0
JQuery выбор первой из выпадающего списка
    #38158710
Virtuoz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот мои попытки сделать (неудачные):
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
$(function(){
    $('#form_from, #form_from_home, #form_to, #form_to_home').live("focusout", function(){
        complite = false;
    });
    
    $("#form_from").focusin(function () {
        $(document).keypress(function (e) {
//            alert(e.which);
            if (e.which == 13) {
                var firstResult = $(".pac-container .pac-item:first").text();
                $("#form_from").val(firstResult);
                alert('1111');
                $(".pac-container .pac-item:first").addClass("pac-selected");
                $(".pac-container").css("display","none");
                $(".pac-container").css("visibility","hidden");
            } else {
                $(".pac-container").css("visibility","visible");
            }

        });
    });

})



В решении же все работает:

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
<!DOCTYPE html>
<html>
<body>
<input id="searchTextField" type="text" size="50">
<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'></script>
<script src="https://maps.googleapis.com/maps/api/js?sensor=false&libraries=places"></script>


<script>
    var pac_input = document.getElementById('searchTextField');

    (function pacSelectFirst(input) {
        // store the original event binding function
        var _addEventListener = (input.addEventListener) ? input.addEventListener : input.attachEvent;

        function addEventListenerWrapper(type, listener) {
            // Simulate a 'down arrow' keypress on hitting 'return' when no pac suggestion is selected,
            // and then trigger the original listener.
            if (type == "keydown") {
                var orig_listener = listener;
                listener = function(event) {
                    var suggestion_selected = $(".pac-item.pac-selected").length > 0;
                    if (event.which == 13 && !suggestion_selected) {
                        var simulated_downarrow = $.Event("keydown", {
                            keyCode: 40,
                            which: 40
                        });
                        orig_listener.apply(input, [simulated_downarrow]);
                    }

                    orig_listener.apply(input, [event]);
                };
            }

            _addEventListener.apply(input, [type, listener]);
        }

        input.addEventListener = addEventListenerWrapper;
        input.attachEvent = addEventListenerWrapper;

        var autocomplete = new google.maps.places.Autocomplete(input);

    })(pac_input);
</script>
</body>
</html>



Но мне не понятно как это реализовать в своем случае. То есть нужно ли эту функцию описывать до $(function() или внутри нее и в какой момент будет вызвана pacSelectFirst, если будет описана до $(function() ??
...
Рейтинг: 0 / 0
JQuery выбор первой из выпадающего списка
    #38158718
Virtuoz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё, разобрался! Прошу прощения за беспокойство.

Решение: Код добавил в initialize().
...
Рейтинг: 0 / 0
JQuery выбор первой из выпадающего списка
    #38158840
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VirtuozДа, это такая конструкция, а что она означает?
Из букваря...
http://learn.javascript.ru/closures-usage#приём-проектирования-модуль
...
Рейтинг: 0 / 0
JQuery выбор первой из выпадающего списка
    #38158873
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VirtuozНо мне не понятно как это реализовать в своем случае. То есть нужно ли эту функцию описывать до $(function() или внутри нее и в какой момент будет вызвана pacSelectFirst, если будет описана до $(function() ??
Как вариант...

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
<!DOCTYPE html>
<html>
<head>
<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'></script>
<script src="https://maps.googleapis.com/maps/api/js?sensor=false&libraries=places"></script>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
label {
	display: block;
}
label + label {
	margin-top: 5px;
}
</style>
<script type="text/javascript">
$(document).ready(function() {
	var input = document.getElementById('beg');
	pacSelectFirst(input);
	input = document.getElementById('end');
	pacSelectFirst(input);
});
function pacSelectFirst(input) {
	// store the original event binding function
	var _addEventListener = (input.addEventListener) ? input.addEventListener : input.attachEvent;
	function addEventListenerWrapper(type, listener) {
		// Simulate a 'down arrow' keypress on hitting 'return' when no pac suggestion is selected,
		// and then trigger the original listener.
		if (type == "keydown") {
			var orig_listener = listener;
			listener = function(event) {
				var suggestion_selected = $(".pac-item.pac-selected").length > 0;
				if (event.which == 13 && !suggestion_selected) {
					var simulated_downarrow = $.Event("keydown", {
						keyCode: 40,
						which: 40
					});
					orig_listener.apply(input, [simulated_downarrow]);
				}

				orig_listener.apply(input, [event]);
			};
		}
		_addEventListener.apply(input, [type, listener]);
	}
	input.addEventListener = addEventListenerWrapper;
	input.attachEvent = addEventListenerWrapper;
	var autocomplete = new google.maps.places.Autocomplete(input);
};
</script>
</head>
<body>
<label>
	Откуда
	<input id="beg" type="text" size="50">
</label>
<label>
	Куда
	<input id="end" type="text" size="50">
</label>

<script>
</script>
</body>
</html>


Думау так будет понагляднее...
...
Рейтинг: 0 / 0
JQuery выбор первой из выпадающего списка
    #38159072
Virtuoz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, так нагляднее, спасибо.

Единственное не могу понять почему это решение не работает в IE8 (((
В Опере, Хроме, FireFox - всё отлично, даже в IE9, а вот именно IE8 - не хочет воспринимать.
...
Рейтинг: 0 / 0
JQuery выбор первой из выпадающего списка
    #38159255
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VirtuozЕдинственное не могу понять почему это решение не работает в IE8 (((
Так оно может в нём изначально не работает... Т.е. на него и не расчитано...
...
Рейтинг: 0 / 0
JQuery выбор первой из выпадающего списка
    #38159560
Virtuoz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блин, вот это конечно плохо (((
Буду думать, как обойти эту проблему для IE8. Если найду решение - обязательно отпишусь здесь.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JQuery выбор первой из выпадающего списка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]