JQuery不是第一次点击工作,而是在它之后工作

时间:2017-03-13 10:38:48

标签: jquery

这是我的代码:

function getBlock2(EUID, MID, I, ESTS)
{   
      $('.new-exam').on('click', function() {
        $('.new-exam').removeClass('new-exam');
        $(this).addClass('new-exam-hover');
        $('.tab-item-hover').addClass('tab-item');
        $('.tab-item').removeClass('tab-item-hover');
      });
      $('.tab-item').on('click', function() {
        $('.new-exam-hover').addClass('new-exam');
        $('.new-exam').removeClass('new-exam-hover');
        $('.tab-item-hover').removeClass('tab-item-hover');
        $(this).addClass('tab-item-hover');     
      });

      $.ajax({
        type: "POST",
        url: './exam/x/exams_ajax.exe.php',
        data: { EUID : EUID, MID : MID, I : I, ESTS : ESTS },
        cache: false,
        success: function(data) {
        $('.block2').html(data);
      }

  }); return false;
}

在第一次单击时,ajax部分可以工作,但是删除/ addClass之前不会再次单击。

我似乎无法弄明白为什么,任何帮助都会受到赞赏。感谢。

3 个答案:

答案 0 :(得分:0)

您需要将JavaScript移动到文档正文的末尾,或将jQuery代码放在document.ready块中

$('.new-exam').on('click', function() {
    $('.new-exam').removeClass('new-exam');
    $(this).addClass('new-exam-hover');
    $('.tab-item-hover').addClass('tab-item');
    $('.tab-item').removeClass('tab-item-hover');
  });
  $('.tab-item')

如果在加载正文之前调用此对象,则您的页面还没有任何new-examtab-item个内容。

答案 1 :(得分:0)

我建议按照其他人的建议添加document.ready,然后检查您是否按以下顺序进行操作。

  1. 首先包含jQuery库
  2. 包含已定义getBlock2函数的js文件
  3. 包含调用getBlock2函数
  4. 的js文件

    作为最佳做法,请始终在页面末尾引用您的js文件。

答案 2 :(得分:0)

我设法解决了这个问题。

我在包含JQuery库之前加载了该函数,这就是为什么当我试图将它放入document.ready块时出现错误的原因。

我已将下一部分移动的订单更改为document.ready块,现在效果正常!

$('.new-exam').on('click', function() {
    $('.new-exam').removeClass('new-exam');
    $(this).addClass('new-exam-hover');
    $('.tab-item-hover').addClass('tab-item');
    $('.tab-item').removeClass('tab-item-hover');
  });
  $('.tab-item').on('click', function() {
    $('.new-exam-hover').addClass('new-exam');
    $('.new-exam').removeClass('new-exam-hover');
    $('.tab-item-hover').removeClass('tab-item-hover');
    $(this).addClass('tab-item-hover');     
  });

感谢您的帮助。