我對JavaScript非常陌生,總體上web開發並且真的無法理解爲什麼我的函數沒有被正確調用。函數沒有按計劃調用
我試圖創建一個「控制器」類,因爲我會調用它,其中包含彈出式元素的功能,如open()
和close()
。
這裏是控制器類:
function PopupController(containerElementId){
_containerElement = document.getElementById(containerElementId);
_contentElement = _containerElement.getElementsByClassName("modal-body")[0];
window.onclick = function(event) {
if (event.target !== _containerElement && _containerElement.style.display === "block") {
_containerElement.style.display = "none";
}
}
}
PopupController.prototype = {
constructor: PopupController
}
PopupController.prototype.open = function(contentHtml) {
_contentElement.innerHTML = contentHtml;
_containerElement.style.display = "block";
}
PopupController.prototype.close = function() {
_containerElement.style.display = "none";
_contentElement.innerHTML = "";
}
然後我們有一個全球範圍內這是控制器對象,駐留在HTML的頭內。
this._popupController = new PopupController("popupContainerId");
function openPopup(){
this._popupController.open("<p>testing</p>");
}
和HTML。
<body>
<button type="button" class="btn btn-info btn-lg" data-toggle="modal" onclick="openPopup()">Read more</button>
<div class="popupContainer" tabindex="-1" role="dialog" id="popupContainerId">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title">Modal title</h4>
</div>
<div class="modal-body">
</div>
<div class="modal-footer">
<button type="button" class="close">Close</button>
</div>
</div>
</div>
</div>
</body>
當我調試這在Chrome中,感覺就像在open()
頁面加載被調用,但我想我已經有線它被點擊按鈕調用。無論如何彈出窗口不會顯示,但這是另一個問題。
希望任何人都可以給我一個提示如何進行?
現在我在頁面加載時調用的函數中添加了初始化,所以它不再返回undefined。 – Alex
之後它效果更好......雖然彈出窗口只顯示一毫秒或其他東西。但這是我現在要發佈的另一個問題! :) 謝謝。 – Alex