Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.08.2012, 00:12
Аватар для Arris
Интересующийся
Отправить личное сообщение для Arris Посмотреть профиль Найти все сообщения от Arris
 
Регистрация: 03.06.2012
Сообщений: 13

jQuery .on() bind function error? O.o
Читаю статью по тут

Код:
...В качестве параметра handler должна быть указана 
функция (или значение false, но об этом позже). 
Это может быть анонимная функция:

$('#foo').on('click', function(){
  alert('Вы нажали на элемент "foo"');
});

или именем заданной функции:

function myFunction(){
  alert('Вы нажали на элемент "foo"');
});
$('#foo').on('click', myFunction);
Пишу:
Код:
function handlerOn(txt)
{
     $("span#text").html(txt); 
}
И вот так:

Код:
$('a[href*=localhost]').on('mouseover',function(){
        handlerOn(this.href);
    });
Все отлично, при наведении на <a href="localhost/">..<> получаем в нужном спане ожидаемое...

А если сказать вот так:
Код:
$('a[href*=localhost]').on('mouseover', handlerOn(this.href));
Мы получаем... ничего не получаем.
Более того, если в handlerOn() вставить alert('!') - при старте страницы нам выдадут алерт и больше не произойдет ничего. Даже если просто сказать " ,handlerOn ) (и в функции сказать скажем alert('!') - мы получим ту же фигню.


Что я делаю не так?
Ответить с цитированием
  #2 (permalink)  
Старый 19.08.2012, 00:26
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от Arris
.В качестве параметра handler должна быть указана
функция (или значение false, но об этом позже).
Это может быть анонимная функция:
или именем заданной функции:
а handlerOn(this.href) -это не то и не другое-это обращение к функции-в данном случае
ошибка очевидная-в то время как раньше у Вас была функция
function(){ handlerOn(this.href);}

Последний раз редактировалось vadim5june, 19.08.2012 в 00:31.
Ответить с цитированием
  #3 (permalink)  
Старый 19.08.2012, 00:39
Аватар для Arris
Интересующийся
Отправить личное сообщение для Arris Посмотреть профиль Найти все сообщения от Arris
 
Регистрация: 03.06.2012
Сообщений: 13

Сообщение от vadim5june Посмотреть сообщение
а handlerOn(this.href) -это не то и не другое-это обращение к функции-в данном случае
ошибка очевидная-в то время как раньше у Вас была функция
function(){ handlerOn(this.href);}
Вы не поверите... ну ладно, допустим это вызов... но почему так происходит? И как мне теперь передать в функцию какие-то конкретные данные?

объект event внутри функции не определен, хотя статья как бы утверждает, что в хэндлер передается объект event содержащий кучу нужного...

Последний раз редактировалось Arris, 19.08.2012 в 00:48.
Ответить с цитированием
  #4 (permalink)  
Старый 19.08.2012, 00:51
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

я не проверял но Вы в первом посте писали
Все отлично, при наведении на <a href="localhost/">..<> получаем в нужном спане ожидаемое...
а что теперь изменилось?
Ответить с цитированием
  #5 (permalink)  
Старый 19.08.2012, 00:52
Аватар для Arris
Интересующийся
Отправить личное сообщение для Arris Посмотреть профиль Найти все сообщения от Arris
 
Регистрация: 03.06.2012
Сообщений: 13

собственно вот:
Код:
function handlerTest()
{
    alert(this);
}

$('a[href*=localhost]').on('mouseover', handlerTest);
алерт гарантированно выводит href соотв. ссылки.
А если мне нужен не href? А title? Или что-нибудь еще?
Ответить с цитированием
  #6 (permalink)  
Старый 19.08.2012, 00:54
Аватар для Arris
Интересующийся
Отправить личное сообщение для Arris Посмотреть профиль Найти все сообщения от Arris
 
Регистрация: 03.06.2012
Сообщений: 13

Сообщение от vadim5june Посмотреть сообщение
я не проверял но Вы в первом посте писали
Все отлично, при наведении на <a href="localhost/">..<> получаем в нужном спане ожидаемое...
а что теперь изменилось?
"Ожидаемое" относится к использованию анонимной функции

, function() { callHandler() } )
С ней то как раз все в порядке.
Ответить с цитированием
  #7 (permalink)  
Старый 19.08.2012, 00:55
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от Arris
А если мне нужен не href? А title?
попробуйте
alert(this.getAttribute('title'));
Ответить с цитированием
  #8 (permalink)  
Старый 19.08.2012, 01:04
Аватар для Arris
Интересующийся
Отправить личное сообщение для Arris Посмотреть профиль Найти все сообщения от Arris
 
Регистрация: 03.06.2012
Сообщений: 13

Сообщение от vadim5june Посмотреть сообщение
попробуйте
alert(this.getAttribute('title'));

вроде бы работает, но очевидности в этом нет. Сплошная неочевидность. Я понял как работает, но нифига не понял - почему именно так.

Кроме того.. а содержимое ссылки <a> это </a> как получить?

$('a[href*=localhost]').on('mouseover', handlerTest);
и
function handlerTest()
{
$("span#test").html(this);
}
приводит к дивным результатам.
Ответить с цитированием
  #9 (permalink)  
Старый 19.08.2012, 01:09
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от Arris
Кроме того.. а содержимое ссылки <a> это </a> как получить?
я думаю так
$("span#test").html($(this).text());

Сообщение от Arris
вроде бы работает, но очевидности в этом нет
можно было через jquery
$(this).attr('title')

Последний раз редактировалось vadim5june, 19.08.2012 в 01:12.
Ответить с цитированием
  #10 (permalink)  
Старый 19.08.2012, 01:14
Аватар для Arris
Интересующийся
Отправить личное сообщение для Arris Посмотреть профиль Найти все сообщения от Arris
 
Регистрация: 03.06.2012
Сообщений: 13

Вы правильно думаете :-\

Но блин.. доки такие доки... :-\

Спасибо. Шесть часов бития головой о монитор как обычно бессмысленны оказались. Но хоть полезны :-\
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кроссбраузерная обертка AttachEvent Dim@ Ваши сайты и скрипты 13 21.08.2012 21:21
Авторизация в модальном окне с помощью jQuery A.N.R.I jQuery 17 01.03.2010 19:26
анимированное меню на jquery глючит в ie leCadavreExquis jQuery 3 30.12.2009 17:30
скрипт калькулятора krIvo jQuery 0 25.09.2008 18:44
первый опыт jquery. Вопросы. Titto jQuery 0 17.09.2008 10:32