Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как привязать к параметр к имени функции? (https://javascript.ru/forum/jquery/75334-kak-privyazat-k-parametr-k-imeni-funkcii.html)

xsfd 24.09.2018 16:47

Как привязать к параметр к имени функции?
 
Имеется список пользователей (таблица). При нажатии на юзера - открывается информация о нём (гармошкой под строкой).
Собственно на событии onclick привязан скрипт c подгрузкой информации в блок:
var loaded = false;

       function userinfo(account_id)  
        {  
            
    if(loaded) return;
    
            $.ajax({  
                url: "templates/ajax_search.php?id=" + account_id,  
                cache: true,  
                success: function(html){  
                    $(".userinfo-" + account_id).html(html);  
                loaded = true;
                                   
                }  
            });
        }


account_id передаётся через onclick.
Вопрос и проблема собственно в следующем:с каждым последующим разворачиванием информации о пользователе - ajax выполняется заново. Дабы этого не происходило - был привязан var loaded, но по понятным причинам подгрузить информацию выйдет только об одном юзере.
Собственно вопрос таков: Как к этому самому var loaded прицепить передаваемый account_id? (то что определение находится вне функции тоже немного вызывает вопросы, думаю там придется эти самые id пробивать вручную)

laimas 24.09.2018 17:24

$(".userinfo-" + account_id) - тогда уж рациональнее по id элемента обращаться ($("#userinfo-" + account_id)), account_id ведь уникальное значение. А прежде чем делать запрос, можно проверить наличие контента у этого элемента, да и Ajax может кешировать запросы.

xsfd 24.09.2018 17:34

Цитата:

Сообщение от laimas (Сообщение 495354)
...А прежде чем делать запрос, можно проверить наличие контента у этого элемента...

Блин, точно. Даже не подумал чет) Спасибо!

laimas 24.09.2018 17:45

И задействуйте id, имя класса в данном случае не оправдано.


Часовой пояс GMT +3, время: 20:38.