Это то, что мне нужно, чтобы узнать какое-то время, и мне интересно, могут ли какие-либо эксперты javascript указать мне в правильном направлении.Передача переменных на анонимные функции
Многие библиотеки, которые я использовал, кажется, принимают указатели на функции в качестве аргументов, например, крючок для успеха, терпят неудачу, и т.д. Вот простой пример этого в приложении, я работаю над:
$('.clock-btn').each(function(){
$(this).click(function(){
$.ajax(
{
url:'punch.php?task_id=' + $(this).data('task-id'),
success: function() {
reverseCSS($(this));
},
error: function() {
window.alert("Clocking time to this project is not allowed.");
}
}
);
});
});
Функция reverseCSS()
- функция, которая изменяет кнопку на анимацию и заменяет слова «clock-in/clock-out» в зависимости от того, что было ранее.
Однако я не могу получить доступ к переменной $ (этой) в вызове $.ajax
. Это ожидаемое поведение для меня, как я знаю в этом примере, $(this)
будет $.ajax object
, а не элементом, который мне нужен из html.
Итак, что было бы лучшим способом получить доступ к элементу $(this)
?
Большое спасибо за помощь.
Добавить переменную перед вашим вызовом ajax: var my this = $ (this) и передать мифы для функции – Zaki
Кстати, вы все же можете оптимизировать свой код, заменив двойное закрытие на сингл с помощью '$ ('. clock-btn'). click (function() ... . – albanx