2017-03-13 73 views
0

这是我的代码: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一个没有,直到我再次点击。

我似乎无法弄清楚为什么,任何帮助将不胜感激。谢谢。

+0

这是裹在文件中。准备? – guradio

+0

如何调用函数getBlock2(EUID,MID,I,ESTS)? 点击事件? 取出''(''。'new-exam')。on('click',function(){'这部分功能不可用,它会起作用 –

+0

你能提供一个jsfiddle或代码片段 –

回答

0

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

  1. 首先包括jQuery库
  2. 包括已经getBlock2函数定义
  3. 包括被调用getBlock2功能

最佳做法是js文件,总是在指你的js文件的js文件页面结束。

0

你需要你的JavaScript移动到文档正文的结束或附上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') 

内jQuery代码。如果这就是所谓的装载身体之前,你的页面不会有任何new-examtab-item的事情呢。

+0

当我尝试将它包含在document.ready块中时,我得到一个错误“getBlock2未定义。”也许我做错了什么,我对javascript不熟练。 –

+0

您必须有一些其他代码在它存在之前调用getBlock2。在JavaScript中理解时序需要一些工作,但要开始,总是将* all * your JavaScript放入'document.ready'中 – Tashi

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');  
    }); 

感谢您的帮助。

相关问题