首頁 > web前端 > css教學 > 為什麼我的 JavaScript 範圍滑桿從 JSFiddle 移動到外部頁面時不起作用?

為什麼我的 JavaScript 範圍滑桿從 JSFiddle 移動到外部頁面時不起作用?

DDD
發布: 2024-12-16 18:21:18
原創
336 人瀏覽過

Why Doesn't My JavaScript Range Slider Work When Moved from JSFiddle to an External Page?

JSFiddle 程式碼在外部頁面上出錯

在嘗試將功能代碼從JSFiddle 遷移到外部頁面時,用戶遇到了意外行為,其中JavaScript 元件停止運行.

程式碼設定

使用者提供了以下HTML、CSS 和JavaScript code:

<body>
登入後複製
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;}
登入後複製
$('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、JavaScript 和 CSS 檔案中,但 JavaScript 部分仍無法執行。

關鍵的見解來自 JSFiddle 將使用者的 JavaScript 程式碼放置在 onload 處理程序中。因此,只有在整個頁面載入後才會執行該程式碼。然而,在外部頁面中,JavaScript 位於

中,在解析輸入元素之前執行。

補救措施

要修正問題,使用者可以採用以下三種解決方案之一:

  1. 將程式碼包含在 onload中,或最好是在文件就緒處理程序中,例如,
$(document).ready(function() {
    // your code here
});
登入後複製
  1. 利用文件就緒處理程序的縮寫形式:
$(function() {
    // your code here
});
登入後複製
  1. 移動包含以下內容的腳本標記的位置JavaScript 程式碼放在頁面末尾,允許在程式碼之前解析元素執行。

以上是為什麼我的 JavaScript 範圍滑桿從 JSFiddle 移動到外部頁面時不起作用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板