2

我正在使用 jquery1.9.1 和 jqueryui 1.10.2,如下所示:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script>

使用:

$(document).ready(function(){ 
// my code here
});

我正在使用这样的 AJAX:

$('.formu').fadeOut("slow", function(){
    $.ajax({
        type: "GET",
        url: './php/calc.php?id=1000',
        dataType: "json",
        success: function(data){
            alert("hello");
            // jQueryUI component below
            $("#sliderui").slider({
               range: "min",
               min: 1,
               max: data.maxi,
               value: data.valu
            });
        },
        error: function(){
            errorcalculo();
        }
    });
});

我看到两次带有“hello”的警报......所以我搜索了这个问题,可能是因为两个库之间存在冲突。然后我把这段代码:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>var jQuery132 = $.noConflict(true);</script>
<script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script>

使用:

$(document).ready(function(){ 
// my code here
})(jQuery132);

最后像这样修改AJAX:

jQuery132('.formu').fadeOut("slow", function(){
    jQuery132.ajax({
        type: "GET",
        url: './php/calc.php?id=1000',
        dataType: "json",
        success: function(data){
            alert("hello");
            // jQueryUI component below
            $("#sliderui").slider({
               range: "min",
               min: 1,
               max: data.maxi,
               value: data.valu
            });
        },
        error: function(){
            errorcalculo();
        }
    });
});

但恐怕代码也不起作用......我做错了什么?

如果您需要更多信息,请告诉我,我将编辑帖子。

4

1 回答 1

2

最简单的是使用检查条件..

var check = false;
jQuery132('.formu').fadeOut("slow", function(){ 
   if(!check) {
     jQuery132.ajax({
        type: "GET",
        url: './php/calc.php?id=1000',
        dataType: "json",
        success: function(data){
            alert("hello");
            // jQueryUI component below
            $("#sliderui").slider({
               range: "min",
               min: 1,
               max: data.maxi,
               value: data.valu
            });
        },
        error: function(){
            errorcalculo();
        },
        complete: function() {
           check = true;
        }
    });
  }
});

或者看起来可能存在未定义滑块的情况..所以最好使用该条件..

var $slider = $("#sliderui");
jQuery132('.formu').fadeOut("slow", function(){ 
   if(!$slider.hasClass('ui-slider')) {
      jQuery132.ajax({
        type: "GET",
        url: './php/calc.php?id=1000',
        dataType: "json",
        success: function(data){
            alert("hello");
            // jQueryUI component below
            $slider .slider({
               range: "min",
               min: 1,
               max: data.maxi,
               value: data.valu
            });
        },
        error: function(){
            errorcalculo();
        }
    });
  }
});

检查小提琴

于 2013-05-13T19:15:40.950 回答