【问题标题】:jqModal only works after element's been inserted on the pagejqModal 仅在页面上插入元素后才有效
【发布时间】:2011-06-09 21:34:52
【问题描述】:

我正在使用jqModal 插件将对话框附加到按钮单击上。我正在尝试将以下框附加到页面:

    suqBoxInner = document.createElement("div");
    suqBoxInner.id = "suq_box_inner";

    $(suqBoxInner).jqDrag('.jqDrag').jqResize('.jqResize').jqm({
      trigger: '#suq_button',
      overlay: 0,
      onShow: function(h) {
        return h.w.css('opacity', 0.92).slideDown();
      },
      onHide: function(h) {
        return h.w.slideUp("slow", function() {
          if (h.o) {
            return h.o.remove();
          }
        });
      }
    });

但是,只有在将 div 插入页面后运行此绑定代码时,这才有效。也就是说,在运行jqDrag 代码之前,我必须使用类似$("#div_on_page").after(suqBoxInner) 的东西。在将其插入页面之前,我有哪些绑定选项?我可以使用$.live(),但它必须绑定到鼠标事件,并且jqModal 插件在函数调用中列出的触发器上使用绑定。

【问题讨论】:

    标签: javascript jquery binding


    【解决方案1】:

    看来这个插件需要div (suqBoxInner) 在页面上。这么短的修改插件,我不确定你有很多选择。也许您可能想重新考虑如何实现插件? suqBoxInner 是如何放置在页面上的?是在特定事件或行动之后吗?

    我能想到的一个解决方案是在将suqBoxInner 放置在页面上之后触发一个事件。然后该事件将初始化 jqModal。

    只是一个想法。祝你好运。

    【讨论】:

      猜你喜欢
      • 2014-05-14
      • 1970-01-01
      • 2017-05-13
      • 2012-04-12
      • 1970-01-01
      • 2014-03-25
      • 2012-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多