關於BootStrap模態框的使用

當點擊編輯按鈕時,將數據傳遞給彈出的模態框。

如果當前的按鈕是在jsp中使用<c:foreach>標籤遍歷循環出來的,則在觸發Bootstrap對模態框內置的4個方法時,將獲取不到對象。

<button aria-hidden="true" data-toggle="modal"
class="icon-pencil" data-target="#showinfo"
data-photoid="${photo.photoid }"
data-path="${photo.photoname}"
data-remake="${photo.photoremake }" 
></button>

<div class="modal fade" id="showinfo" tabindex="-1" role="dialog"
			aria-labelledby="exampleModalLabel" style="width: 600px;">
			<div class="modal-dialog" role="document">
				<div class="modal-content">
					<div class="modal-header">
						<button type="button" class="close" data-dismiss="modal"
							aria-label="Close">
							<span aria-hidden="true">&times;</span>
						</button>
						<h4 class="modal-title" id="exampleModalLabel">
							圖片編號:<span id="photoid"></span>
						</h4>
						<input type="hidden" id="photoidhidd">
					</div>
					<div class="modal-body">
						<div class="form-group">
							<img alt="" src="" id="imgs" width="500px" height="300px">
						</div>
						<div class="form-group">
							<label>圖片描述</label>
							<textarea style="width: 500px;" id="photoremake"></textarea>
						</div>
						<div class="modal-footer">
							<button type="button" class="btn btn-default"
								data-dismiss="modal">Close</button>
							<button type="button" id="updateremake" class="btn btn-primary">Submit</button>
						</div>
					</div>

				</div>
			</div>
		</div>
			 $('#showinfo').on('show.bs.modal', function(event) {
				
				var button=$(event.relatedTarget);
				var photoid = button.data("photoid");
				var url = button.data("path");
				var remake = button.data("remake");
				$("#photoid").html(photoid);
				$("#imgs").attr("src","/shoots/"+url);
				$("#photoremake").html(remake);

			})

當點擊按鈕時,會首先觸發show.bs.modal事件,本意是通過event.relatedTarget獲取到觸發事件的按鈕對象,然後通過獲取對象的dataset的值,將值傳遞給模態框;但是因爲按鈕是動態生成的所以取不到對象,通過一番研究最後沒有使用show.bs.modal事件,而是給button添加了一個onclick事件,執行如下方法:

function iii(event) {
event = event ? event : window.event;
var button = event.srcElement ? event.srcElement : event.target;
var photoid = button.dataset.photoid;
var url = button.dataset.path;
var remake = button.dataset.remake;
$("#photoid").html(photoid);
$("#photoidhidd").val(photoid);
$("#imgs").attr("src", "/shoots/" + url);
$("#photoremake").val("");
$("#photoremake").val(remake);
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章