Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.07.2013, 19:02
Новичок на форуме
Отправить личное сообщение для moloko Посмотреть профиль Найти все сообщения от moloko
 
Регистрация: 13.02.2013
Сообщений: 7

Помогите подключить функцию в onclick
Есть ссылка
<a href="javascript:void(0);" class="link cityselect__link" onclick=".....">город</a>


Есть javascript файл
var ad = {

    init: function() {
        this.bindEvents();
    },


    bindEvents: function() {
        var _this = this;

        // cityselect
        $('#cityselect .cityselect__link').bind('click', _this.toggleCityselect);
    },

    toggleCityselect: function(e, state) {
        var pageWrapper = $('#page'),
            cityselect = $('#cityselect');

        if (e) {
            e.preventDefault();
        }
        if (cityselect.hasClass('cityselect_shown') || state === 'hide') {
            // hide
            cityselect.removeClass('cityselect_shown');
            $('body').unbind('click', ad.cityselectBodyClickHandler);
            $(window).unbind('keydown', ad.windowKeydownHandler);
        } else if (!cityselect.hasClass('cityselect_shown') || state === 'show') {
            // show
            cityselect.addClass('cityselect_shown');
            $('body').bind('click', ad.cityselectBodyClickHandler);
            $(window).bind('keydown', ad.windowKeydownHandler);
        }
    },


    cityselectBodyClickHandler: function(e) {
        if (!$(e.target).closest('.cityselect__title').length) {
            ad.toggleCityselect();
        }
    },

    windowKeydownHandler: function(e) {
        if (e.which === 27) {
            ad.toggleCityselect(null, 'hide');
            $(window).unbind('keydown', this.windowKeydownHandler);
        }
    }
};

$(document).ready(function() {
    ad.init();
});


Помогите, пожалуйста, в javascript ничего не понимаю, только изучать начала. Нужно в ссылке в onclick вставить функцию обработки, чтобы появилось всплывающее меню с городами. Не могу понять какую функцию вставить, а может и не правильно вставляю и саму функцию вставляю....
Ответить с цитированием
  #2 (permalink)  
Старый 29.07.2013, 19:17
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
	<html>
		<head>
		</head>
	<body>
	<a href="http://google.ru" onclick="return clk();">кликай меня полностью :)</a>
	<script>
	function clk()
		{
		alert('меня кликнули!');
		return false;
		}
	</script>
	</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 29.07.2013, 19:22
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

а селектор находит?
попробуйте в консоль вывести:
console.log($('#cityselect .cityselect__link')[0]);
Ответить с цитированием
  #4 (permalink)  
Старый 29.07.2013, 19:30
Новичок на форуме
Отправить личное сообщение для moloko Посмотреть профиль Найти все сообщения от moloko
 
Регистрация: 13.02.2013
Сообщений: 7

Сообщение от skrudjmakdak Посмотреть сообщение
а селектор находит?
попробуйте в консоль вывести:
console.log($('#cityselect .cityselect__link')[0]);
А как это вывести в консоль?
Ответить с цитированием
  #5 (permalink)  
Старый 29.07.2013, 19:36
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

и там это имхо не нужно:
href="javascript:void(0);"

Про консоль. чтобы посмотреть в консоль, то это зависит от браузера. называется фаербаг(отладчик), необходим для нахождения ошибок. например в хроме он установлен по умолчанию и вызывается f12. в фаерфокс нужно скачать и установить.

после того как вызвали отладчик, там есть вкладка консоль.. туда быдут сыпаться все сообщения (и ошибки тоже).

теперь пишем:
...
bindEvents: function() {
        var _this = this;
        // cityselect
	console.log($('#cityselect .cityselect__link')[0]);
        $('#cityselect .cityselect__link').bind('click', _this.toggleCityselect);
    },
...


если код дойдет до этой строчки: console.log($('#cityselect .cityselect__link')[0]);
то в консоль упадет сообщение. и должен отобразиться там объект. если будет undefined то объект не найден.
Ответить с цитированием
  #6 (permalink)  
Старый 29.07.2013, 19:47
Новичок на форуме
Отправить личное сообщение для moloko Посмотреть профиль Найти все сообщения от moloko
 
Регистрация: 13.02.2013
Сообщений: 7

В консоле показало:
Uncaught ReferenceError: $ is not defined cityselect.js:50

т.е. как я поняла он его находит, но не определяет, верно?
Ответить с цитированием
  #7 (permalink)  
Старый 29.07.2013, 19:55
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

на 50й строчке ошибка. мм а у вас jquery библиотека подключена. он на нее ругается. что то на подобии должно быть:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>

вообще в src может и другой адрес быть прописан.. если нет вообще такого подобного вставьте эту строчку
Ответить с цитированием
  #8 (permalink)  
Старый 29.07.2013, 20:09
Новичок на форуме
Отправить личное сообщение для moloko Посмотреть профиль Найти все сообщения от moloko
 
Регистрация: 13.02.2013
Сообщений: 7

Нет, не помогает...
Ответить с цитированием
  #9 (permalink)  
Старый 29.07.2013, 20:22
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

покажите 50ю строчку.. плюс минус строк 8
Ответить с цитированием
  #10 (permalink)  
Старый 29.07.2013, 20:54
Новичок на форуме
Отправить личное сообщение для moloko Посмотреть профиль Найти все сообщения от moloko
 
Регистрация: 13.02.2013
Сообщений: 7

windowKeydownHandler: function(e) {
        if (e.which === 27) {
            ad.toggleCityselect(null, 'hide');
            $(window).unbind('keydown', this.windowKeydownHandler);
        }
    }
};

№50    $(document).ready(function() {
    ad.init();
});


Это совсем в конце получается.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите написать числовую функцию leny Общие вопросы Javascript 69 01.08.2012 14:26
Помогите с последовательными onclick на картинки СергейСВ Элементы интерфейса 10 03.05.2012 16:48
Помогите вынести обработчик события в функцию. prowoke Events/DOM/Window 3 24.03.2011 23:55
помогите. не работает onclick m1st_kh Элементы интерфейса 7 26.11.2010 08:45
Помогите!!! Из нового окна вызвать функцию ignavr Элементы интерфейса 5 13.12.2009 12:04