JqueryUI Spinner问题

时间:2013-05-08 13:23:26

标签: jquery html jquery-ui

您好我从jquery UI插入微调器时遇到问题。 下面是我的代码,有人可以帮助我,我将不胜感激。我不能让它看起来只是让我的所有工作都消失了:S

        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript">


        //This creates a spinner for each of the weighting boxes for the user to have an easier way of selecting their desired values
          $(function() {
            var spinner = $( "x" ).spinner({
                min:0});
            var spinner = $( "y" ).spinner({
                min:0});
            var spinner = $( "z" ).spinner({
                min:0});
            });     

        $(document).ready(function()  
        {
            var x ='x';
            var y = 'y';
            var z = 'z';
            // user variables declared

            $('<tr><td>'+x+'</td>' +
                  '<td><input id="'+x+'" class="textbox" type="text" id = "x" value="1" />'+ // text boxes for each variable created
                  '</td></tr>').appendTo('#menu');

             $('<tr><td>'+y+'</td>'+
                  '<td><input id="'+y+'" class="textbox" type="text" id = "y" value="1" />'+
                  '</td></tr>').appendTo('#menu');

             $('<tr><td>'+z+'</td>'+
                  '<td><input id="'+z+'" class="textbox" type="text" id = "z" value="1" />'+
                  '</td></tr>').appendTo('#menu');

1 个答案:

答案 0 :(得分:1)

有太多错误只发布评论所以这里是(请注意我不知道你的整个代码/ HTML标记是什么样的,所以有些错误可能不是真正的错误)

首先,代码中没有jQuery UI脚本标记。但我想这只是你的代码示例,而不是你的整个代码。 如果不是:

<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> 

在你的$(function() { });中,你说它会为每个加权框创建一个微调器。但是你要做的就是声明并覆盖一个变量(var spinner)3次。此外,使用变量也不是必需的。但无论如何:

$(document).ready(function() {
    var spinnerOne = $( "#x" ).spinner({
        min:0});
    var spinnerTwo = $( "#y" ).spinner({
        min:0});
    var spinnerThree = $( "#z" ).spinner({
         min:0});

    //alternative without using variables:
    $('#x').spinner({ min: 0 });
});   

我也改变了你的选择器,例如$( "z" )$( "#z" ),因为您想要使用指定的ID在<inputs>上初始化微调器。

  

$('#element')是id为“element”的元素的选择器(通常只有一个)

     

$( '元素')。是具有类“element”的元素的选择器(如果存在多个具有此类的类,则全部被选中)

这就像在CSS中一样,你选择一个带有点.的元素和一个带有哈希#的ID

因为我已经命名了ID主题。您的所有input字段都包含两个 ID,但ID是唯一标识符。 (也许这只是在示例代码中显示您尝试的内容)

你需要像这样纠正它们

<input class="textbox" type="text" id="x" value="1" />

实际上也不需要连接+,因为您只尝试附加HTML('<tr><td>'+x+'</td>'除外)

在单独的函数中编写微调器是多余的。 $(function () { });$(document).ready(function () { });用于同一目的。 有关更多信息,请参阅此stackoverflow主题。 但是,在创建应该为其创建微调器的元素之前,根本无法工作的是初始化微调器。 我不确定您为什么要在$(document).ready()中创建一些元素,因为您可以在html模板中轻松完成此操作。

我建议您创建一个jsfiddle。它为我们提供了更准确的问题视图。你目前的进步是什么。 真正描述您的问题以及在哪种情况下无法正常工作将会有所帮助。

以修改方式提供标记的 working example 。 请务必知道你做了什么。