проблема с .load () после нескольких кликов - PullRequest
0 голосов
/ 20 июля 2011

почему после нескольких нажатий на "#icon a" зависает браузер и запускается код js bad.
Все плохо, когда обновляешь страницу.я использую хром, firefox и ...

$('#icon a').click(function (event) {
        event.preventDefault();
        var id = '#' + this.id;
        var title = $(id).attr('title');
        $(".title").toggleClass("suject").html(title);
        var url = $(id).attr('href');
        $('.table_show, #num_count, #select_box, #input_search').fadeOut('slow', function () {
            $('.results').load(url, function(){
                $(this).hide().show();
                $.getScript("http://localhost/Siran-mehdi/files/js/admin.js"); 
            })
            //.hide().show("slow")
        });
    });

Ответы [ 2 ]

0 голосов
/ 20 июля 2011

Из документации jQuery (http://api.jquery.com/jQuery.getScript/)

Это сокращенная функция Ajax, которая эквивалентна:

$. Ajax ({url: url, dataType: "script",success: success});

Это означает, что асинхронный вызов ajax выполняется при каждом нажатии ссылки, и, вероятно, вызывает проблемы при повторном нажатии до завершения вызова ajax. Вы можете попробовать отключитьссылка, пока запрос ajax не будет завершен.

0 голосов
/ 20 июля 2011

Несколько раз нажав на ссылку, вы запускаете несколько ajax-запросов.Вот почему это hang browser will and is run code js bad Попробуйте отключить ссылку после первого нажатия и включить, когда ajax-запрос завершен.

Я надеюсь, что это поможетнужно добавить какой-то класс по ссылке.Пусть будет clickme;Чем ваш код будет таким.У меня нет времени, чтобы проверить это, так что это просто идея.Это должно работать.

$('#icon a.clickme').live('click', function (event) {
        var clickedLink=$(this);
        clickedLink.toggleClass('clickme');  //disabling link
        event.preventDefault();
        var id = '#' + this.id;
        var title = $(id).attr('title');
        $(".title").toggleClass("suject").html(title);
        var url = $(id).attr('href');
        $('.table_show, #num_count, #select_box, #input_search').fadeOut('slow', function () {
            $('.results').load(url, function(){
                //if load function failed 
                //you may enable link there
                $(this).hide().show();
                $.getScript("http://localhost/Siran-mehdi/files/js/admin.js", function(){
                    clickedLink.toggleClass('clickme');  //enabling link 
                }); 
            })
            //.hide().show("slow")
        });
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...