2015-04-14 79 views
0

我有一個委託彈出窗口,用於在平板電腦和手機上顯示模式。不幸的是,該模式似乎等到ajax調用@href完成後才顯示任何內容。從文檔看來,模式應該彈出填充期間 ajax調用,但我什麼都看不到,直到彈出窗口突然出現。這個調用可以預見到足夠長的時間(約5秒的開發),我知道裝載機沒有出現在瞬間的可能性。JqModal AjaxText未出現

$('a.word').on(touchstart: touchWordPopup) 

以下是在CoffeeScript中,但遵循官方文檔的約定。

touchWordPopup: (event) -> 
    event.preventDefault() 
    // another function handles mouse hover popups, 
    // so let's disable that stuff. 
    $(this).off('mouseover mouseenter mouseleave') 
    $('#popup').jqm(
    closeClass: 'close' 
    ajax: @href 
    ajaxText: '<h2>Loading...</h2>' 
    modal: true 
).jqmShow() 

HTML:

<html> 
    <head>...</head> 
    <body> 
    <div class='subscription'> 
     <a href="/words/foo" class='word'>Foo</a> 
     <!-- several more words... --> 
    </div> 
    <div id='popup' class='jqmWindow'></div> 
    </body> 
</html> 

我想知道代表團或CoffeeScript中是否會是罪魁禍首,但我不能告訴那裏的問題可能會被修復。

回答

0

CoffeeScript不是怪罪。

我發佈了jqModal 1.3.0,它立即顯示(顯示)啓用ajax的模態。

文檔已更新,我已包含example (#5)以測試較慢的遠程響應。

因爲現在立即觸發jqmShow()的等價物,如果您的ajax響應包含匹配closeClass的元素,它們將永遠不會附加。這是最好的修補jqModal和事件處理程序綁定到模式iteself糾正,但現在你可以使用的onLoad:

onLoad: function(hash){ 
    var modal = hash.w; 
    $(hash.o.closeClass, modal).click(function(){ 
    modal.jqmClose(); 
    return false; 
    }); 
} 
+0

偉大的作品,感謝,但有一個機會,這打破了修復'closeClass'?它似乎不再適合我了。 – Eric

+0

Eric,如果closeClass引用將在ajax響應中提供的目標 - 它將不會附加。爲此,我會使用onLoad。更新答案。 – briceburg