简体   繁体   English

点击而不是页面加载时加载Accordian Panel

[英]Load Accordian Panel on click rather than page load

I am using a Google Map and Street View javascript code within two panels using Bootstrap Accordian. 我正在使用Bootstrap Accordian在两个面板中使用Google Map和Street View javascript代码。 The first panel contains the map and the second contains the street view. 第一个面板包含地图,第二个面板包含街景。 Currently both panels load their JS code on page load but the second panel is collapsed so only the Map panel is visible. 当前,两个面板均在页面加载时加载其JS代码,但第二个面板已折叠,因此仅“地图”面板可见。

Is it possible to delay the loading of the second panel which contains the street view code until the user clicks to expand/unhide the content rather than loading it all on page load? 是否可以延迟包含街景代码的第二个面板的加载,直到用户单击以展开/取消隐藏内容,而不是全部加载到页面加载中为止?

Thanks 谢谢

<div class="panel-group" id="accordion">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion"
href="#collapse1">Local Map</a></h4></div>
<div id="collapse1" class="panel-collapse collapse in">
<div class="panel-body">
**Google Map JS**
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" 
href="#collapse2">Street View</a></h4></div>
<div id="collapse2" class="panel-collapse collapse">
<div class="panel-body">
<div id="pano" style="width: 400px; height: 300px;"></div>
</div>
</div>
</div>
</div>

<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script type="text/javascript">
$(document).ready(function(){
$(".accordion-toggle").on('click',function(){
if($(this).attr('href') =="#collapse2"){
alert('');function initialize() {
var point= new google.maps.LatLng(51.524964,-0.34146399999997357);
var panoramaOptions = {
position: point,
pov: {
heading: 12.399999999999999,
pitch: 6.94
}
};
var panorama = new     
google.maps.StreetViewPanorama(document.getElementById('pano'),panoramaOptions);
map.setStreetView(panorama);
}
google.maps.event.addDomListener(window, 'load', initialize);
}
});
});
}
});
});
</script>

you can try something like this: 您可以尝试这样的事情:

<html lang="en">
<head>
<meta charset="UTF-8">
<title>Example of Twitter Bootstrap 3 Accordion</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap-theme.min.css">
<script src="http://getbootstrap.com/dist/js/bootstrap.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>

<style type="text/css">
    .bs-example{
        margin: 20px;
    }
</style>
<script>
$(document).ready(function(){
$(".accordion-toggle").on('click',function(){
if($(this).attr('href') =="#collapse2"){
    alert('hi');
    initialize();
}
});
});


function initialize() {
      var fenway = new google.maps.LatLng(42.345573, -71.098326);
      var mapOptions = {
        center: fenway,
        zoom: 14
      };
      var map = new google.maps.Map(
          document.getElementById('map-canvas'), mapOptions);
      var panoramaOptions = {
        position: fenway,
        pov: {
          heading: 34,
          pitch: 10
        }
      };
      var panorama = new google.maps.StreetViewPanorama(document.getElementById('pano'), panoramaOptions);
      map.setStreetView(panorama);
    }

</script>
</head>
<body>
<div class="panel-group" id="accordion">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion"
href="#collapse1">Local Map</a></h4></div>
<div id="collapse1" class="panel-collapse collapse in">
<div class="panel-body">
**Google Map JS**
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" 
href="#collapse2">Street View</a></h4></div>
<div id="collapse2" class="panel-collapse collapse">
<div class="panel-body">
 <div id="map-canvas" style="width: 400px; height: 300px"></div>
<div id="pano" style="width: 400px; height: 300px;"></div>
</div>
</div>
</div>
</div>
</body>
</html>                                                              

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 等待用户单击而不是页面加载以启动功能 - Wait for user click rather than page load to start function AJAX函数作用于页面加载,而不是单击按钮 - AJAX functions acting on page load rather than button click 如何在事件而不是页面加载时加载某些内容 - How to make something load at an event rather than on page-load 如何单击单击按钮以在顶部而不是在中间加载导航标签页? - How to get on click button to load the nav tab page at the top rather than in the middle? Rails嵌套的模型形式:加载而不是单击 - Rails nested model forms: on load rather than on click 在事件而不是页面加载后启动 jQuery 计时器 - Starting a jQuery timer after an event rather than page load 在页面加载中检索数据库记录而不是在Javascript中的键盘功能 - Retrieving Database Records on Page Load rather than keyup function in Javascript 选择框导航:寡妇在页面加载时打开而不是更改 - Select Box Navigation: widow opening on page load rather than change 使用.load()无法将嵌入在面板页面中的按钮单击单击 - Button click embedded in a page in a panel does not work using .load() Javascript 模态 window 代码重新配置为在页面加载时加载,而不是 onclick。 帮助:) - Javascript modal window code reconfigured to load on page load rather than onclick. Help :)
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM