jquery ui小部件显示为文本输入

时间:2014-07-19 23:37:56

标签: javascript jquery jquery-ui jquery-ui-slider jquery-ui-widget

我尝试制作像http://jqueryui.com/slider/#range这样的范围小部件。我复制了源代码,导致文本输入而不是滑块。这是我正在使用的代码。我还将style属性移动到链接的css文件。这样做的输出从无变为文本输入。

这是我的头脑:

<head>
  <meta charset="utf-8">
  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css">

  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.0/jquery-ui.js"></script>
  <script src="../jscript/questions.js"></script>
  <script>
     jQuery.noConflict()
  $(function() {
    $('#slider-range').slider({
      range: true,
      min: 25,
      max: 500,
      values: [ 75, 300 ],
      slide: function( event, ui ) {
        jQuery( "#amount" ).val( "$" + ui.values[ 0 ] + " - $" + ui.values[ 1 ] );
      }
    });
    jQuery( "#amount" ).val( "$" + $( "#slider-range" ).slider( "values", 0 ) +
      " - $" + jQuery( "#slider-range" ).slider( "values", 1 ) );
  });
  </script>
  <link href='http://fonts.googleapis.com/css?family=Roboto:400,500,900,300' rel='stylesheet' type='text/css'>
  <link rel="stylesheet" type="text/css" href="../CSS/questions.css">
</head>  

这是小部件的html:

<p>
  <label for="amount">Price range:</label>
  <input type="text" id="amount"  >
</p>

<div id="slider-range"></div>

这就是CSS:

#slider-range{
  border:0;
  color:#f6931f; 
  font-weight:bold;
}

谢谢!

2 个答案:

答案 0 :(得分:1)

您的问题源于声明jQuery.noConflict()

通过这样做,您无法再使用jQuery

直接访问$

如果您需要noConflict,可以通过更改以下内容来修复代码:

jQuery.noConflict()
$(function() {

jQuery.noConflict()
jQuery(function($) {/* "$" argument allows using "$" inside the ready handler*/

Working demo of your code

了解如何使用浏览器控制台检查错误。您应该看到"$" is not defined或类似的错误,具体取决于浏览器

答案 1 :(得分:0)

jQuery.noConflict() 

放弃$变量,以便在未分配后调用它。

文件 http://api.jquery.com/jquery.noconflict/

工作小提琴 http://jsfiddle.net/rniemeyer/MfegM/