我在彈出窗口中顯示了一個Ajax窗體,並顯示了覆蓋。我通過ajax提交彈出窗口,如果ajax調用已成功,我需要關閉覆蓋。Asp.Net MVC/jQuery工具覆蓋:如何在ajax中關閉它返回
這是目前我的JS代碼:
<script type="text/javascript">
$(function() {
// Handle form submit ...
$("#AddVariableForm").live("submit", function (event) {
event.preventDefault();
var form = $(this);
$.validator.unobtrusive.parse('#AddVariableForm');
$.ajax({
url: form.attr('action'),
type: "POST",
data: form.serialize(),
success: function (data) {
if(data.Success){
$("#adm-form-addVariable").data("overlay").close();
}
},
error: function (jqXhr, textStatus, errorThrown) {
alert("Error '" + jqXhr.status + "' (textStatus: '" + textStatus + "', errorThrown: '" + errorThrown + "')");
},
complete: function() {
alert('complete');
}
});
return false;
});
});
</script>
的問題是,它目前還沒有任何關閉。我再次使用chrome調試模式進行檢查,它在方法中,但不做任何事情。我也檢查過,沒有JS錯誤。
我試圖做
$("#adm-form-addVariable").overlay({ api: true }).close()
,但同樣的問題。
這是我如何把它聲明:
$(".adm-btn-overlay-trigger[rel]").overlay(
{
mask: {
color: '#111',
loadSpeed: 300,
opacity: 0.9
},
closeOnClick: true
}
);
如果我這樣做:。
$( 「#ADM外形addVariable」)覆蓋({API:真})。 isOpened()
我得到一個未定義的。
我在做什麼錯?
我試着和它的作品。我試圖理解爲什麼?不是[rel]屬性訪問器?這是一個xpath表達式吧?這也許可以解釋爲什麼我以前不明白。 PS:多麼驚人的工具jsfiddle是!我以前不知道!不要猶豫,轉發我這種工具:)巨大的風扇:) – J4N 2012-02-28 07:03:41
jQuery表達式基本上說:「具有rel屬性的class .adm-btn-overlay-trigger的元素」。 jquery工具似乎存儲了與觸發器有關的疊加信息,而不是疊加元素本身。這是一個設計選擇。順便說一句,我的初始解決方案不適用於多個觸發器,因爲$(「。adm-btn-overlay-trigger [rel]」)可以返回多個結果。我用一個可行的解決方案更新了我的答案。 – 2012-02-28 07:20:21
哦,我剛剛在SO上了解到jsfiddler。確實是一個不錯的工具 – 2012-02-28 07:21:02