0

以下が機能しない理由について少し混乱しています.2つのjquery/javascriptを試しました

モバイル ビュー 9 のドロップダウン メニューがあります。リンクを作成しようとした 2 つの方法を組み込みました。

   <select id="nav-select">
    <option value="/public_pages/faq">FAQ</option>
    <option value="vacancy"><%= link_to 'Create Vacancy ', new_vacancy_path %></option>        
   </select>

ウィンドウの位置を取得して正しい URL にリンクしようとした JavaScript

$('#nav-select').change(function(){
var url = $(this).val();
window.location = url;
});

document.getElementById("nav-select").addEventListener('change',function () {
window.location = this.value;
 },false);

オプションを選択しても何も起こりません

アイデアはありますか?select タグの使い方が間違っていませんか?

ありがとう

4

1 に答える 1

2

未定義で述べられているように、スクリプトをドキュメント対応ハンドラー内に配置すると、これが解決されます。さらに説明すると、実際のドキュメント マークアップの前にスクリプトを定義したに違いありません。これにより、ドキュメントにまだ存在しない要素の jQuery 検索が行われます。

ドキュメント対応ハンドラー内に配置することにより、次のようになります。

$(document).ready(function(){
    $('#nav-select').change(function(){
        var url = $(this).val();
        window.location = url;
    });
});

基本的に、ページの読み込みが完了するまでスクリプトを待機させており#nav-select、コードを実行する前に要素がドキュメントに存在します。

于 2013-02-13T23:35:23.450 に答える