0

現在、jQuery を使用しています。以下は、PHP を介してリストを生成するコードであり、リストをクリックすると、そのフォルダーのサブコンテンツのリストを作成できます。

私はこの作業のjsfiddleを持っています: here

ただし、私のページで実行すると実行されません。「ラップインなし」を選択すると、問題が再現されるようです。

正直なところ、これらの 4 つの jsfiddle オプションについては何も知りません。3 では機能しますが、4 では機能しません。

<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<?php
if ($handle = opendir('fileServer')) {
    while (false !== ($file = readdir($handle)))
    {
        if (($file != ".") 
         && ($file != ".."))
        {
            $thelist .= '<LI id='.$file.'>'.$file.'';
        }
    }

    closedir($handle);
}
?>


<script type="text/javascript">
function genCont(){
//  alert(sel + "folder selected")


//This is the alert that works in JSfiddle but not on my Rpi :(
$("#fList li").click(function() {
    alert(this.id); // get id of clicked li used in below PHP
});

//future unused code, suggestion for improvement are, of course, welcome 
//var fName = sel;
<?php
if ($handle = opendir(/*not used yet*/)) {
    while (false !== ($file = readdir($handle)))
    {
        if (($file != ".") 
         && ($file != ".."))
        {
            $thelist2 .= '<LI><a href="'.$file.'">'.$file.'</a>';
        }
        }

    closedir($handle);
}?>
}
</script>


<div class="fsFolder">
<ul id="fList">
<?=$thelist?>   
</ul>
</div>

よろしくお願いします

クリス

4

2 に答える 2

1

コードを doc.ready でラップする必要があります

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

アップデート

$(document).ready(function () {

    $("#fList li").click(function () {
        alert(this.id); // get id of clicked li
    });

    //$boobies = document.getElementByID("#fList li").this.id
    $boobies = $('#fList li')[0].id;

});
于 2013-09-02T20:35:11.123 に答える
0

あなたは jsFiddle の本当に驚くべきデフォルトの動作に見舞われました。これは、すべての JavaScript コードをwindow loadハンドラーでラップするというものです。jsFiddle UI の左上隅を見ると、値がonload選択された、ラベルのないドロップダウン ボックスが表示されます。このwindow loadイベントは、すべての HTML が解析された後、すべての外部リソース (画像を含む) が読み込まれた後など、ページの読み込みサイクルの非常に遅い段階で発生します。

scriptページの最後、 のすぐ上にタグを配置して、タグ</body>が作用する要素が存在するようにします。コードの問題は、次の行です。

$("#fList li").click(...);

ページソースでその要素の上にあるため、その要素が存在する前に発生します。ページソースの下に置くだけです。

参考文献:

于 2013-09-02T20:37:13.717 に答える