Как отключить событие нажатия на некоторое время с помощью jquery? - PullRequest
3 голосов
/ 10 ноября 2011

У меня есть левое дерево.Его структура выглядит следующим образом:


    MainCategory
      Category1
        Subcategory1
        Subcategory2
      Category2
        Subcategory3
        Subcategory4
        Subcategory5
      Category3
      .
      .. etc like that      

Если пользователь щелкает по любой из главной категории / категории / подкатегории, мне нужно отключить / предотвратить повторный / многократный щелчок по той же ссылке, пока не будет получен результат.Как я могу сделать это с помощью jquery?

Ответы [ 2 ]

2 голосов
/ 10 ноября 2011

если вы используете jQuery 1.7, вы можете использовать off () и on () функциональность

пример:

var foo = function () {
    // code to handle some kind of event
};

// ... now foo will be called when paragraphs are clicked ...
$("body").on("click", "p", foo);


// ... foo will no longer be called.
$("body").off("click", "p", foo); 

ifвы используете более старую версию, которую можете unbind () и bind () событие

пример:

var foo = function () {
    // code to handle some kind of event
};

// ... now foo will be called when paragraphs are clicked ...
$("body p").bind("click", foo);

// ... foo will no longer be called.
$("body p").unbind("click");
1 голос
/ 10 ноября 2011

Может быть просто использовать класс, чтобы проверить, щелкнул ли он уже.
Если щелкнуть, не выполнять и удалить класс в случае успеха и неудачи.

Прототип -

$('.selector').click(function(){
    if(!$(this).hasClass('someclass')){
        $(this).addClass('someclass');
        $.ajax({
          url: "test.html",
          success: function(){
            $(this).removeClass("someclass");
          },
          error: function(){
            $(this).removeClass("someclass");
          }
        });
    }
})
...