1

私はこのdivを持っています

<div class="foodsSection">
    <label>
        Foods:
    </label>
    <ul>
        <li>
            roma
        </li>
    </ul>
</div>

そしてこのjquery:

$(".foodsSection li").click(function(){
        $(".addressesSection").css("display","block");
    });

romajqueryを押すと正常に機能liしますが、jqueryを使用してデータベースから取得したものを押すと、jqueryが機能しません。これは、データベースからデータを取得するjqueryですが、li要素内にあります。

$(document).ready(function(){
    $(".RestauranstSection li").click(function (){
        var divYourOrder = $(".YourOrder");
        var li = $(".OMRestaurants li");
        $(".foodsSection").css("display", "block");
        var restaurantID = 8;
        var foodDive = $(".foodsSection ul");
        foodDive.html("");
        var lis = '';
        $.getJSON("http://localhost/TheEatTel/Food/getFoodForRestaurant/"+restaurantID+"/TRUE",function(data){
            for(var i=0;i<data.length;i=i+3){
                lis +="<li id='"+data[i+2]+"'>"+"<label>"+data[i]+"</label> <label>"+data[i+1]+"</label></li>";
            }
            lis+="";
            foodDive.html(lis);    
        });
    });
    $(".foodsSection li").click(function(){
        $(".addressesSection").css("display","block");
    });
});
4

4 に答える 4

3

これを使って :

$(".foodsSection ul").on('click', 'li', function(){

バインディングを実行すると、バインディング関数を呼び出しているjQueryセットが計算されます。イベントを受信すると、引数として渡したセレクターをチェックします。ドキュメントを参照してください。

于 2013-03-18T15:19:51.023 に答える
2

クリックメソッドは生成されたDOMでは機能しないため、 .click()の代わりに.on ()を使用する必要があります。

$(".foodsSection li").on("click", 'li' ,function(){
    $(".addressesSection").css("display","block");
});
于 2013-03-18T15:22:53.743 に答える
1

次のような委任されたイベントを使用する

$(".foodsSection").on("click", "li", function(){
    $(".addressesSection").css("display","block");
});

http://api.jquery.com/on/を参照してください(特に、直接イベントと委任イベントに関する部分を読んでください。これは、コードが機能せず、このコードが機能する理由を説明しています

于 2013-03-18T15:23:48.643 に答える
1

解決策は

$('.foodsSection').on('click', 'li', function() {
});

コードの問題は、その時点で既存の各「li」要素にリスナーをアタッチすることです。それ以外の場合は.on('click', 'li', function(){})、リスナーを親要素にアタッチして、子のすべてのクリックを処理できるようにします。

于 2013-03-18T15:26:38.400 に答える