#jquery
Есть событие клика по элементу a: $('.edit_comment li a').click(function(){ function MyFunct(); } Как передать внутрь функции this от события, чтобы в MyFunct я могу обращаться так $(this).closest('div'); // Найти ближайщий div от ссылки, по которой кликнули Пытаюсь сделать так: $('.edit_comment li a').click(function() { var element = this; SaveChangesEditComments(element, null) }); function SaveChangesEditComments(element, changedText) { var data = element.attr('data'); // не получаю нужное });
Ответы
Ответ 1
Обычно вот так: $('.edit_comment li a').click(MyFunct); function MyFunct(); { console.log($(this)) } но если this меняется, скажем при setTimeout то так: $('.edit_comment li a').click(function() { var that=this; setTimeout(function() console.log("timeout started"); MyFunct.apply(that,{a:1,b:4}); //передать функции that как её this (сменить контекст) },100); function MyFunct(args); { console.log($(this),args) }Ответ 2
Плохо знаком с JQuery, но могу подсказать предполагаемый алгоритм. Найти сначала общий с $('.edit_comment li a') родительский элемент и потом с ним работать. И по-моему JQuery не поддерживает "самодельные" внутри себя функции.Ответ 3
Попробуйте var data = $(element).attr('data'); вместо var data = element.attr('data');Ответ 4
Разве так нельзя? Я Вас правильно понял? function myfunction(element){ console.log(element); element.animate({.......or other } $("#some_block a" ).click(myfunction($(this)));
Комментариев нет:
Отправить комментарий