Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   можно ли использовать вызов функции? (https://javascript.ru/forum/jquery/57114-mozhno-li-ispolzovat-vyzov-funkcii.html)

ogurchik 20.07.2015 13:29

можно ли использовать вызов функции?
 
Нужно реализовать переключение между вкладками при помощи AJAX. Функцию решено было сделать на jquery, что бы мне как новичку было проще. Пока на бэкэнде ошибки и непонятно, будет ли работать, тем временем я думаю над тем, что не так у меня? Работает кажется некорректно, вызывает сразу после загрузки запрос со всеми тремя url. На клик же на вкладку не реагирует. Не хотелось бы повторением кода заниматься, можно же использовать jquery в функции и тут же вызвать по клику эту функцию?

<div class="picker">
        <div id='tab1'>Some data 1</div>
        <div id='tab2'>Some data 2</div>
        <div id='tab3'>Some data 3</div>
    </div>
   <div class='listing'>
   <div class='listing-item'>one</div>
   <div class='listing-item'>two</div>
   <div class='listing-item'>three</div>
</div>

var doRequest = function (url) {

        $('.listing').css('opacity', '0.1').before('<img src="/static/images/loader.svg" class="loader">');

        jQuery.getJSON(url).success(function(data) {
                console.log("Успешное выполнение");
                console.log(data);
        })
              .error(function() {
                console.log("Ошибка выполнения");
        })
              .complete(function() {
                $('.listing').css('opacity', '1');
                $('.loader').remove();
        });
    };

    $('#tab1').click(doRequest('/courses/tab/1'));
    $('#tab2').click(doRequest('/courses/tab/2'));
    $('#tab3').click(doRequest('/courses/tab/3'));
</script>

devote 20.07.2015 13:48

$('#tab1').click(function() {
  doRequest('/courses/tab/1');
});
$('#tab2').click(function() {
  doRequest('/courses/tab/2');
});
$('#tab3').click(function() {
  doRequest('/courses/tab/3');
});

ogurchik 20.07.2015 13:56

оу... понятно, спасибо )


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