jquery - значение ссылки из одной функции в другую - PullRequest
0 голосов
/ 04 августа 2020

Я что-то здесь пропустил?

У меня есть код html:

<td class="clickable" data-type="connect1">ABC</td>

Затем у меня есть следующие jquery функции:

$(document).ready(function()
{
    showDetails();
}

getTypeToUse = function()
{
    dataType=$(this).data("type");
    console.log("dataType:"+dataType);
}

showDetails = function()
{
    $('body').on('click','.clickable',function()
    {
        getTypeToUse();
    })
}

Но когда я нажимаю на <td>, я получаю dataType:undefined.

Если я помещаю код внутри showDetails(), он работает, как ожидалось, и возвращает dataType:connect1.

Но поскольку я хочу, чтобы функция getTypeToUse была доступна позже в другом месте, я хотел сохранить ее отдельно.

1 Ответ

1 голос
/ 04 августа 2020

this внутри вашего getTypeToUse относится к объекту window, а не к выбранному элементу. Вам необходимо передать элемент или событие вашей функции следующим образом:

$(document).ready(function() {
    showDetails();
});
    
getTypeToUse = function($ele) {
    dataType = $ele.data("type");
    console.log("dataType:"+dataType);
};
    
showDetails = function() {
    $('body').on('click','.clickable',function() { 
        getTypeToUse($(this));
    });
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...