html()之后的div内容未显示

时间:2015-03-18 06:46:09

标签: javascript php jquery ajax dom

我遇到了ajax调用和.html()的问题,正如您可以在下面的javascript中看到我使用geoloc回调进行ajax调用并刷新div的内容。
div的id可以是" result-shops-ajax-desktop"或"结果商店-ajax-mobile"在我的例子中,php变量$ type =" desktop"
问题是尽管使用了.html()
,但不会重新加载div的内容 我的ajax调用正在工作,因为msg.response得到了我想要的内容。 .html()似乎有效,因为警报显示了msg.response的内容,但我无法在页面上看到它:/
另一件事是奇怪的,当我直接放入div的id时,显示的内容,但是当我回应$ type时,它不起作用,尽管html产生的是好的(div的id是& #34;结果商店-Ajax的桌面"。)

我希望我用自己糟糕的英语清楚地表达自己,我真的很感激这个奇怪问题的任何帮助。

谢谢!

这是我的php文件中的javascript:

<script type="text/javascript">
        jQuery.noConflict();
        jQuery(document).ready(function($){
            function geolocShow(position) {
                $.ajax({
                    type: "POST",
                    url: "<?php echo $this->getUrl('shops/index/checkavailability'); ?>",
                    dataType : "json",
                    data: "sku=<?php echo $product->getSku(); ?>&lat="+position.coords.latitude+"&lng="+position.coords.longitude,
                    success: function(msg){
                        $("#result-shops-ajax-<?php echo trim($type); ?>").html(msg.response);
                        alert($("#result-shops-ajax-<?php echo trim($type); ?>").html());
                    }
                });
            }

            if(navigator.geolocation) {
                navigator.geolocation.getCurrentPosition(geolocShow);
            }
        });
    </script>

生成的html:

jQuery.noConflict();
jQuery(document).ready(function($){
    function geolocShow(position) {
        $.ajax({
            type: "POST",
            url: "http://localhost/shops/index/checkavailability/",
            dataType : "json",
            data: "sku=abc&lat="+position.coords.latitude+"&lng="+position.coords.longitude,
            success: function(msg){
                $("#result-shops-ajax-desktop").html(msg.response);
                alert($("#result-shops-ajax-desktop").html());
            }
        });
    }

    if(navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(geolocShow);
    }
});

1 个答案:

答案 0 :(得分:0)

试试这个: jQuery(document).ready(function($){此行更改为$(window).load(function(){