1

私はこれについての助けを求めてウェブをトロールするのに多くの時間を費やしましたが、私が探していることを実行するものは何も見つかりませんでした.複数のソースからのソリューションをまとめようとしました.

私がやろうとしているのは、ページの一部にミュージシャンをリストする Web ページを作成して、個々のミュージシャンの名前をクリックして、別の部分にアルバム、曲、歌詞などのリストをロードできるようにすることです。同じページの。データはすべて MySQL データベースにあり、データベース内の各アイテムには一意の ID があります。

データベースからデータを取得して配列に入れることができます。ID を手動で設定すると、ページの別の部分にミュージシャンのリストとその情報のリストを作成できます。クリックして ID を返すことができれば、Ajax を使用して必要なデータをロードすることに集中できます。JQuery でページ上の必要な場所に表示すると思いますが、取得に行き詰まっています。クリック可能なリストが機能しています。

Joomla 3.1 を使用してサイトを作成していますが、コードは PHP と Javascript だけです。

私の最近の取り組みは次のとおりです。

<ul id="nav" style="list-style:none">

<?php
    foreach ( $this->items as $item ) {
       echo '<li id='.$item->itemid.' onclick="$(this).index()" >'.$item->title.'</li>';
    }   
?> 
"</ul>" 

<script>
    linkClicked = function (index) {
       alert($('#nav li').get(index).id);
    }

私の他のすべての努力と同様に、これは素晴らしいリストを作成しますが、リストされたアイテムのいずれかをクリックしても何も起こらず、明らかに軌道から外れています. 選択したアイテムのIDを示すアラートが表示されることを意図していましたが、アラートは表示されません。解決策はかなり些細なことだと感じていますが、私はそれを得ていないだけであり、どんな助けも非常に感謝しています.

Joomla に慣れていない人のために説明すると、MySQL データを配列にロードする関数が用意されており、データベースの関連する列の名前を使用して個々の項目にアクセスできます。したがって、$item->title は、現在のデータ行の「タイトル」フィールドの値を示します。

4

1 に答える 1

0

ドキュメントの準備ができたら、コードを起動する必要があります。あなたのコードはトリガーされません。ドキュメントの準備ができたら、次のようにクリック イベントを li タグにバインドする必要があります。

//on document ready
$(function(){
  //select the li tags from #nav and bind a click event to them
  $('#nav li').on('click', function(){
    //When li is clicked: alert the attribute "id" from the clicked element (this = li element)
    alert($(this).attr('id'))
  })
});

with delegation: は、dom に動的に追加された要素に対しても機能します (ページがロードされた後、たとえば ajax 呼び出しによって)

$(function(){
  $('#nav').on('click', 'li', function(){
    alert($(this).attr('id'))
  })
});
于 2013-10-18T00:21:20.670 に答える