0

わかりました、これが尋ねられたかどうかはわかりませんが、正確にどのようにしたかはわかりませんが、そうであれば申し訳ありません.

基本的に、リストには10​​個のアイテムがあります。

このクエリを実行すると:

public function get10items()
{
    $this->query = $this->pdo->prepare("SELECT * FROM items LIMIT 10");
    $this->query->execute();

    while ($row = $this->query->fetch(PDO::FETCH_ASSOC))
    {
        echo '<li id="'.$row['id'].'">'.$row['name'].'</li><br />';
    }
}

これにより、データベースから 10 個の項目が '<ul>' にリストされます。これにより、データベースのように、独自の番号で各アイテムにIDが設定されます。

ここで、jquery を使用して、jquery でクリックされたアイテムの ID 番号を見つけます。

たとえば、私たちのリスト:

Hello! [id55]
Hai! [id66]

「Hello!」という項目をクリックしました。jqueryを使用してクリック時にそのIDを見つけて、将来の使用に使用するにはどうすればよいですか? たとえば、そのIDなどでajaxクエリを送信しますか?

<ul class="list">
<?php echo $class->get10items(); ?>
</ul>

だから基本的に私はこれを使うことができます:

$(".list").on("click", "li", function() {
    $.post("ajax.php", { get : this.id }, function() {
      blablabla
    });
});

あれは正しいですか?

4

6 に答える 6

3

ulこれは、ページ上のすべてのwithに対してトリガーされliます。ulに ID がある場合は、さらにドリルダウンできます。

//Using event delegation since not sure when these items are being added
$("ul").on("click", "li", function() {
    console.log(this.id);
});
于 2013-06-14T18:26:47.493 に答える
1

次のように li アイテムにクラスを追加します。

echo '<li class = "list_item_class" id="'.$row['id'].'>'.$row['name'].'"</li><br />';

そして jQuery で:

$('.list_item_class').click(function(){
   console.log(this.id);
});

これにより、クラス項目のみが選択されるようになり、後であいまいなセレクターで問題が発生するのを防ぐことができます。

于 2013-06-14T18:30:17.707 に答える
0

あなたに必要なのは:

var clickedId;
$('li').click(function(){
    clickedId = $(this).attr('id');
});

clickedId には、クリックされた要素の ID が含まれます。

または、ハンドラーを UL 親に委任する tymeJV の回答を使用することもできます。これにより、より大きなリストのパフォーマンスが向上します。

于 2013-06-14T18:35:43.417 に答える
0

これを試して:

PHPで:

public function get10items()
{
$this->query = $this->pdo->prepare("SELECT * FROM items LIMIT 10");
$this->query->execute();
echo '<ul class='someClassName' id='someUniqueId'>';
while ($row = $this->query->fetch(PDO::FETCH_ASSOC))
{
    echo '<li id="'.$row['id'].'>'.$row['name'].'</li><br />';
}
echo '</ul>';
}

jQueryで:

あなたは HTML コードを投稿していないので、 から委任しdocumentます。

$(document).on('click'. '.someClassName > li', function() { // see the same class name "someClassName" is used here. 
//If you give some other class name in your PHP file, change here also.
 alert(this.id);//this.id is what you wanted.
});

id次のものも使用できますul

$(document).on('click'. '#someUniqueId > li', function() { // see the same id "someUniqueId" is used here, but with # prefixed. 
//If you give some other id in your PHP file, change here also.
 alert(this.id);//this.id is what you wanted.
});
于 2013-06-14T18:30:02.507 に答える
0

event.targetイベントをトリガーした要素を常に参照します。
だから、event.target.idあなたが探しているIDです。

于 2013-06-14T18:31:22.527 に答える
0

jQuery を使用してこれを行うのは非常に簡単です。

$('ul').on('click', 'li', function(e) {
    var id = e.target.id;
    // do your stuff with the id
});
于 2013-06-14T18:30:31.827 に答える