這個代碼看起來有點怪。初始化你的模態一次;
$('div.jqmWindow').jqm({
modal:true,
overlay:80,
toTop: true,
trigger: False
});
我將觸發器設置爲false,因爲我注意到你手動觸發了模態。默認情況下查找具有「jqModal」類的錨元素。
您沒有在HTML例如錨定體,但我認爲它們看起來像:
<a href="#Dv_AddProfile" class="jqModal">Open AddProfile Modal</a>
<a href="#Dv_DuplicateProfile" class="jqModal">Open DuplicateProfile Modal</a>
然後,您同樣可以觸發模態,而不需要event.stopProgogation();例如
$('a.jqModal').click(function(){
$($(this).attr('href')).jqmShow();
return false;
});
現在,讓我們利用默認的closeClass行爲。這樣你就不需要$(「.jqm」)。click()函數來關閉你的模態。
將閉合跨度元素的jqm類更改爲「jqmClose」,例如,
<div id="Dv_DuplicateProfile" class="jqmWindow">
<span id="Spn_Close" class="jqmClose"><button>Close</button></span>
//...
/// popup content
</div>
注意:您可能需要將jqmClose類移動到按鈕元素的點擊事件觸發;例如
<span id="Spn_Close"><button class="jqmClose">Close</button></span>
最後;如果要清除隱藏的模式內容,請通過自定義的onHide回調來完成。我經常遇到這個問題(例如,停止播放視頻而不必擔心插件中的JavaScript API)。
喜歡的東西
onHide: function(hash){
// hide modal
hash.w.hide();
// clear content
$('div.cleared-on-close',hash.w).empty();
// remove overlay
hash.o.remove();
}
因此,這裏是修改後的示例;
標記
<a href="#Dv_AddProfile" class="jqModal">Open AddProfile Modal</a>
<a href="#Dv_DuplicateProfile" class="jqModal">Open DuplicateProfile Modal</a>
<div id="Dv_AddProfile" class="jqmWindow">
<span id="Spn_Close"><button class="jqmClose">Close</button></span>
<div class="cleared-on-close">...</div>
...
</div>
<div id="Dv_DuplicateProfile" class="jqmWindow">
<span id="Spn_Close"><button class="jqmClose">Close</button></span>
<div class="cleared-on-close">...</div>
...
</div>
的Javascript
$('div.jqmWindow').jqm({
modal:true,
overlay:80,
toTop: true,
trigger: False,
onHide: function(hash){
// hide modal
hash.w.hide();
// clear content
$('div.cleared-on-close',hash.w).empty();
// remove overlay
hash.o.remove();
}
});
$('a.jqModal').click(function(){
$($(this).attr('href')).jqmShow();
return false;
});
希望這有助於!
非常好的腳本briceburg。如果我們有一個彈出窗口,默認初始化效果很好,但在這種情況下我有多個。我用span使用jqmClose,但它不適用於我,但現在它可以使用按鈕。 :) 非常感謝您的支持。 – Eastwood