0

次のHTMLは、Ajaxを使用してHTMLページのdivに読み込まれます。ユーザーがそのHTML内のa.start-btnをクリックしたときにコードを実行したいのですが、何らかの理由でクリックが検出されないので、試しました。ライブで動作しませんでした。何が間違っている可能性がありますか?ありがとう

<div class="map">
    <div class="game-step1">
        <div class="note">
            <h5>Day 5</h5>
            <p>Today is the 5th day of our trip around the world... We have already visited Rome, Istambul, Kenya and Maldives.<br/><br/>
<strong>Ready to guess what will be our next destination?</strong></p>
         </div>
         <img src="img/route1.png"  class="route route1"/>
         <a href="#" class="game-button start-btn" >Start the Game &raquo;</a>   
     </div>
</div>




 function showReadyMsg() {
            $('.game-step1').animate({left:'-886px'}, 500);
            console.log('showReadyMsg called')
        }

        $(".start-btn").live("click", function(){
            console.log('button clicked')
            showReadyMsg();
        });
4

2 に答える 2

1

Liveは、jQuery1.9より古いバージョンでは非推奨になり、jQuery1.9では削除されました。.start-buttonを使用して動的に作成された要素のデリゲートでドキュメントを使用する

これを試して

$(document).on('click','.start-btn',function(){
     //Code here
});
于 2013-02-18T16:13:55.257 に答える
0

AJAXを介してロードされたアイテムに対して実行されるJavaScript/jQuery操作は、コールバック関数で設定する必要があります。そうしないと、表示されません。

$('#LoadingDiv').load('some.php #file',function(){
    // javascript to be done on the #file stuff you loaded
});

これは非常に一般的な例です。コールバック関数に渡すパラメーターがない場合は、明示的な宣言の代わりに、作成済みの関数の名前を使用することもできます。

$('#LoadingDiv').load('some.php #file',jsFunctionToCall);

どちらも機能するはずです。

于 2013-02-18T16:14:42.067 に答える