0

照会された情報を div に表示するために fancybox をロードしたいと思います。Firebug では、すべてがうまくいったことがわかりますが、fancybox ウィンドウが期待どおりにポップアップしません。ポップアップできるように何が欠けていますか?

<td><a class="pop" href="#gps_information" id="<?php echo $gps->labref ?>"><?php echo $gps->labref ?></a><input type="hidden" id="labref" value=""/></td> 


<div id="gps_information">    
    </div> 

$(document).ready(function () {
    $('.pop').click(function () {
        labref = $(this).attr('id');
        $.ajax({
            type: "GET",
            url: "<?php echo base_url(); ?>sample_location/gps/" + labref,
            dataType: "json",
            success: function (data) {
                var data = "I am waiting";
                $('#gps_information').html(data);

                $('.pop').fancybox({});

                return true;
            },
            error: function (data) {
                return false;
            }
        });
        return false;
    });
});
4

1 に答える 1

0

いくつかの考慮事項、

1)。これ

$('.pop').fancybox({});

...実際には fancybox を起動しません。fancybox をセレクターにバインドするだけです.pop

2)。ajax が成功すると、同じセレクターに 2 つのイベント ハンドラーが適用されることになります。

$('.pop').click({});
$('.pop').fancybox({});

...最初は を返すfalseため、2 番目は有効になりません。

3)。div ( <div id="gps_information">) に入力することの背後にあるアイデアがそれを fancybox に表示することだけである場合、それはまったく必要ないかもしれません。返された ajaxdataを fancybox に直接表示することができdivます。

そうは言っても、次のようにコードを微調整できます。

$jQuery(document).ready(function () {
    $('.pop').click(function () {
        labref = $(this).attr('id');
        $.ajax({
            type: "GET",
            url: "<?php echo base_url(); ?>sample_location/gps/" + labref,
            dataType: "json",
            success: function (data) {
                //var data = "I am waiting"; // it would override returned data, wouldn't it?
                //$('#gps_information').html(data);
                $.fancybox(data, {
                    // API options here
                });
                // return true; // need no more
            },
            error: function (data) { // (data) what for?
                return false;
            }
        });
        return false;
    });
});
于 2013-06-13T21:43:31.010 に答える