0

ストリームを再生するサイトがあります。人がボタンを押すと、サーバーに対してAJAX呼び出しを実行します。

<input type="submit" class="play" data-type="<?php echo $result_cameras[$i]["camera_type"]; ?>" data-hash="<?php echo $result_cameras[$i]["camera_hash"]; ?>" value="<?php echo $result_cameras[$i]["camera_name"]; ?>">

これにより、ユーザーが選択できる一連のボタンが印刷されます。これは、次のコードによって処理されます。

<script>
$(document).ready(function(){

$(".play").click(function(){
    var camerahash = $(this).data('hash');
    var cameratype = $(this).data('type');
    function doAjax(){
        $.ajax({
            url: 'index.php?option=streaming&task=playstream&id_hash=<?php echo $id_hash; ?>&camera_hash='+camerahash+'&format=raw',
            success: function(data) {
                if (data == 'Initializing...please wait')
                {
                    $('#quote p').html(data);
                    setTimeout(doAjax, 2000);
                }
                else
                {
                    if (cameratype == "WEBCAM" && data == 'Stream is ready...')
                    {
                        $('#quote p').html(data);
                        window.location = 'rtsp://<?php echo DEVSTREAMWEB; ?>/<?php echo $session_id;?>/'+camerahash;
                    }
                    else if (cameratype == "AXIS" && data == 'Stream is ready...')
                    {
                        $('#quote p').html(data);
                        window.location = 'rtsp://<?php echo DEVSTREAMIP; ?>/<?php echo $session_id;?>/'+camerahash;
                    }
                    else
                    {
                        $('#quote p').html(data);
                    }

                }

            }
        });

    }
    doAjax();
});
});
</script>

サーバーは、などのメッセージを返しますStream is ready...。私の問題は、追加のボタンクリックを除いてすべてがうまく機能していることです。具体的には、成功(ビデオ再生)して終了したときに、別のボタンをクリックしても他のメッセージは表示されません。クリックイベントがトリガーされていないかのようです。応答するには、クリックハンドラーに対して何かを行う必要がありますか?

4

1 に答える 1

0

動的に読み込まれるボタンにはデリゲート イベントを使用します。デリゲート イベントを実装するには、jQueryon()メソッドを使用します。

の構文.on():

$(parent).on(eventName, target, handler);
于 2012-09-17T03:36:16.830 に答える