代码之家  ›  专栏  ›  技术社区  ›  SoLoGHoST

jQuery:IE返回ID为空

  •  0
  • SoLoGHoST  · 技术社区  · 15 年前

    我有一个心跳间隔,每隔几秒钟调用一个函数。然后这个函数通过jQuery向服务器发出一个JSON请求,服务器返回JSON响应和一个成功的jQuery函数。在success函数中,它执行另一个jQuery函数,每个id对应一个for each,从每个id中调用另一个函数function(this)。然后,该函数通过jQuery发出另一个JSON请求并获取数据。

    例如。:

    function function() {
     jQuery.noConflict()(function($){
      $.ajax({
       success: function(data){
        jQuery.each(data.ids, function() {
         function2(this);
        }
       });
      });
     });
    }
    
    function function2(id) {
    
     //In IE id is empty here
    
     jQuery.noConflict()(function($){
      $.ajax({
       // In IE id has data here in it, WTF
       success: function(data){
        //In IE id is empty here
       }
      });
     });
    }
    

    另外,请记住这些不是真正的函数名,这里只是一个实际问题的例子。问题是在IE7和IE8中,id变量是空的。在其他浏览器中,ID永远不会为空。我不明白为什么。有人能帮我一下吗?

    谢谢

    2 回复  |  直到 15 年前
        1
  •  1
  •   Nick Craver    15 年前

    我不知道IE如何处理你的语法 jQuery.noConlict() 不需要打电话,而是你的电话(如果你需要的话 $ 里面)应该是这样的:

    function function2(id) {
     (function($){
      $.ajax({
       success: function(data){
       }
      });
     })(jQuery);
    }
    

    或者把你所有的功能都放在一个 (function($) { /* code */ })(jQuery); .noConflict() 如果需要的话。

        2
  •  1
  •   Jesse    15 年前

    .each() this ,并使用 console.log()