将动态内容加载到引导模式
问题描述:
我在AJAX调用之后收到一些数据并填充列表。将动态内容加载到引导模式
但是,当从该列表中点击某个项目时,我想要显示一个有关该项目信息的模式(如图片,它的流行程度 - 点击次数 - 作者等)。我可以用难看的方式做到这一点:
$('#target').append(
$('<div class = "col-md-4" data-toggle = "modal" data-target = "#myModal" onClick = someFunction(' + someArgument + ')>' + someText + '</div>' +
'<div class = "modal fade" id = "myModal" role = "dialog">' + '<div class = "modal-dialog modal-lg">' +
'<div class = "modal-content"> <div class = "modal-header"> <h4 class = "modal-title">' + someTitle + '</h4></div>' +
'<div class = "modal-body">Description: ' + description + ' Author: ' + author + '<br</br>' +
'<img src = "' + imgSource + '" class = "modal-dialog modal-lg" style = "max-width: 25%;">' +
'<button type = "button" class = "close" data-dismiss = "modal" id = "myModal">×</button>' +
'<div class = "modal-footer"></div></div></div></div></div>'));
这是丑陋的,容易出错的,难以维护,难以阅读。它能以更优雅的方式完成吗?
答
-
首先,你的代码应该写在
show.bs.modal
函数里面。$('#target').on('show.bs.modal', function (e) { // do something... })
看到这个:http://getbootstrap.com/javascript/#modals-events
-
其次,我更喜欢使用jQuery创建DOM元素,像这样
$("<div>").addClass("col-md-4").attr("data-target","#myModal").append( $("<div>").addClass("modal fade")//add more here );
这似乎使事情变得更加优雅,更易于阅读。谢谢。 – user3804799