Con*_*pak 5 javascript jquery json twitter-bootstrap
我想加载一个JSON文件,在Bootstrap模式中创建一个列表.我把它设置在哪里如果你点击一个人的图片,模式会弹出.
<li class="project span3" data-type="pfa">
<a data-toggle="modal" data-target="#myModal" class="thumbnail">
<img src="img/anon.jpg" alt="Kenneth Atkins" />
<h1>Kenneth Atkins</h1>
<p>[Description here]</p>
</a>
</li>
Run Code Online (Sandbox Code Playgroud)
以下是JSON数据的示例:
var florida_exoneration = [
{
"last_name":"Atkins",
"first_name":"Kenneth",
"age":16,
"race":"Caucasian",
"state":"FL",
"crime":"Sexual Assault",
"sentence":"10 years",
"conviction":2004,
"exonerated":2008,
"dna":"",
"mistaken witness identification":"",
"false confession":"",
"perjury/false accusation":"Y",
"false evidence":"",
"official misconduct":"",
"inadequate legal defense":"",
"compensation":""
}
]
Run Code Online (Sandbox Code Playgroud)
我希望模式在框内显示如下内容:
Title = "first_name + last_name"
Age = "age"
Race = "race"
State = "state"
""
""
Run Code Online (Sandbox Code Playgroud)
我还想确保数据与图片相关联,这样模态就不会混淆了.如果这有点令人困惑,我很抱歉.如果有人有任何问题,我会尽力澄清.
ben*_*ich 11
方法1:使用Ajax
每次用户单击图像时,您都会从单击的图像中获取ID,然后向服务器发送Ajax请求以获取JSON对象.
HTML
<ul>
<li class="project span3" data-type="pfa">
<a href="#" data-id="2" class="thumbnail">
<img src="img/anon.jpg" alt="Kenneth Atkins" />
<h1>Kenneth Atkins</h1>
<p>[Description here]</p>
</a>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
JavaScript的
(function($) {
var infoModal = $('#myModal');
$('.thumbnail').on('click', function(){
$.ajax({
type: "GET",
url: 'getJson.php?id='+$(this).data('id'),
dataType: 'json',
success: function(data){
htmlData = '<ul><li>title: '+data.first_name+'</li><li>age: '+data.age+'</li></ul>';
infoModal.find('.modal-body').html(htmlData);
infoModal.modal('show');
}
});
return false;
});
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
方法2:使用隐藏的div
不需要任何Ajax请求,但您需要创建一个隐藏的div,其中包含您要在模式中显示的所有信息
HTML
<ul>
<li class="project span3" data-type="pfa">
<a href="#" class="thumbnail">
<img src="img/anon.jpg" alt="Kenneth Atkins" />
<h1>Kenneth Atkins</h1>
<p>[Description here]</p>
<div class="profile hide">
<ul>
<li>title: Atkins Kenneth</li>
<li>Age: 16</li>
</ul>
</div>
</a>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
JavaScript的
(function($) {
var infoModal = $('#myModal');
$('.thumbnail').on('click', function(){
htmlData = $(this).find('.profile').html();
infoModal.find('.modal-body').html(htmlData);
infoModal.modal('show');
return false;
});
})(jQuery);
Run Code Online (Sandbox Code Playgroud)