JSFiddle 代码在我自己的页面中不起作用

IT技术 javascript jquery html css google-chrome
2021-01-31 10:57:48

我有一些在 JSFiddle中运行的代码,但我无法在我自己的页面中运行。

HTML

<body style="background-color: #000000">
  <form oninput="amount.value=range.value" style="color:#1ec2c5;">
  <output name="amount" for="range">2</output><a> KM</a>
  <input type="range" name="range" min="1" max="9" step="1" value="2" id="test">
</body>

CSS

input[type="range"]{
  -webkit-appearance: none;
  -moz-apperance: none;
  border-radius: 6px;
  width: 225px;
  height: 6px;
  border: 2px solid #eceef1;
  outline:none;
  background-image: -webkit-gradient(
    linear,
    left top,
    right top,
    color-stop(0.15, #eceef1),
    color-stop(0.15, #0c0d17)
  ); }

input[type='range']::-webkit-slider-thumb {
  -webkit-appearance: none !important;
  background-color: #1ec2c5;
  border: 3px solid #000000;
  height: 25px;
  width: 25px;
  border-radius: 20px;}

JavaScript

$('input[type="range"]').change(function () {
var val = ($(this).val() - $(this).attr('min')) / ($(this).attr('max') - $(this).attr('min'));

$(this).css('background-image',
            '-webkit-gradient(linear, left top, right top, '
            + 'color-stop(' + val + ', #eceef1), '
            + 'color-stop(' + val + ', #0c0d17)'
            + ')'
            ); 
});

如果我将代码放入 HTML/JS(在 head 中链接)/CSS(在 head 中链接)文件中,CSS 可以工作,但 JavaScript 不能。

我试过用$(this)元素的 id替换,但仍然没有运气。

3个回答

“如果我将代码放入 HTML/JS(在头部链接)”

问题是您已将代码放在 中<head>,因此它在解析输入元素之前运行,因此$('input[type="range"]')找不到任何元素。

如果您查看 JSFiddle 中的“框架和扩展”选项,您会注意到它onload默认将您的 JS 代码放在处理程序中,因此您的代码在整个页面加载之前不会运行。要使代码在您自己的网页上以相同的方式运行,您需要将其包装在onload您自己处理程序中,或者 - 由于您使用的是 jQuery - 将其包装在文档就绪处理程序中

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

或者简短的形式是这样的:

$(function() {
    // your code here
});

或者在页面末尾包含您的脚本,以便它它尝试操作的元素被解析后运行。

伙计,你是个天才。使我免于不必要地将头撞在桌子上
2021-03-12 10:57:48
您好,感谢您的回答。javascript 代码当然位于不同的文件中,该文件在 <head> 中链接。我已经尝试了你的建议,它有效!谢谢你,先生 !
2021-03-13 10:57:48
很好的解释了!
2021-04-10 10:57:48

你确定你已经在你的头文件中包含了 jQuery 库吗?对于所有类型的库,请查看 Google 的开发者网站。https://developers.google.com/speed/libraries/ 这是您正在寻找的 jQuery 库 - 请确保将其放在您的 JS 文件之前。

 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

^ 那应该在您的标题中。;)

嘿,谢谢你的回答。是的,我的 <head 中包含了脚本,不幸的是,没有运气。
2021-03-21 10:57:48
oop,忽略了你说的。误会了。
2021-03-28 10:57:48
  1. 在你的小提琴编辑器中点击javaScript+No-Library(pure JS)
  2. 下拉菜单将为您提供选项。
  3. 第三个选项是load-Type-单击它并选择否wrap-bottom of<head>
  4. 运行你的代码
  5. 享受!