我遇到了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);
}
});
答案 0 :(得分:0)
试试这个: jQuery(document).ready(function($){
此行更改为$(window).load(function(){