JqModal AjaxText 没有出现

JqModal AjaxText not appearing

我有一个委托弹出窗口,旨在在平板电脑和手机上显示模式。不幸的是,模态似乎要等到对 @href 的 ajax 调用完成后才会显示任何内容。从文档看来,在 ajax 调用 期间,模式应该弹出 ajaxText 填充 ,但在弹出窗口突然出现之前我什么也看不到。预计调用时间足够长(开发中约 5 秒),我知道加载器不可能一瞬间不出现。

$('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 造成的,但我不知道问题在哪里可以解决。

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;
  }); 
}