У меня есть собственный класс jQuery для создания всплывающего списка, но когда я передаю HTML-элементы объектам класса, это undefined
!Использовать функцию keyup в пользовательском классе jQuery
Я хочу отправить элемент в класс и установить для него событие .keyup()
и манипулировать значением элемента в функции .keyup()
.
Мой код:
$.Class('kpopup', {
// static
init: function (e, p, h, r, u) {
url = u;
hostElement = e;
popupElement = p;
popupResult = r;
hiddenElement = h;
$(hostElement).keyup(function() {
$.ajax({
url: url,
data: { "value": $(hostElement).val() },
type: 'POST',
success: function (dt) {
if (dt != "") {
$(popupResult).html(dt);
$(hostElement).popupDiv($(popupElement));
} else {
$(popupElement).hide();
}
}
});
});
}
},
//Prototypes
{});
код для использования выше класса:
$(document).ready(function() {
var kpopup = new kpopup(
$("#clas_academy_id"),
$(".popup-picker"),
$("#clas_academy_id_hidden"),
$("#popup-result"),
'@Url.Action("searchAcademies","Academy")'
);
});
Вы уже умирали объекты JQuery к классу , так что не делайте таких вещей: '$ (hostElement) .val()'. Просто сделайте 'hostElement.val()'. –
Я использовал это, но имеет ошибку 'type error: hostElement.val не является функцией' – MasoudKardani
Посмотрите на все глобальные переменные! Почему в мире будет использоваться, чтобы не вводить полные имена переменных в аргументы для начала! – epascarello