【问题标题】:FF javascript woesFF javascript 问题
【发布时间】:2009-06-24 11:27:45
【问题描述】:
Zoom.addEventListener('click', function(){$(document).ready(function(){$("#draggable").draggable({containment: '#imgContainer', scroll: false});});});

让我先解释一下代码。缩放是单击时的处理程序/按钮,我正在启用图像对象的拖动。

以上代码在 Chrome 上运行良好,但 FF 发现错误。让我引用 Firebug:

[Exception... "Not enough arguments" nsresult: "0x80570001 (NS_ERROR_XPC_NOT_ENOUGH_ARGS)" location: "JS frame :: http://localhost/slide/script.js :: anonymous :: line 69" data: no]
[Break on this error] Zoom.addEventListener('click', functio... '#imgContainer', scroll: false});});});

我让它在 Chrome 中正常工作,但在 Firefox 中我无法单击该按钮。 请帮帮我...

【问题讨论】:

  • 为什么要在点击事件处理程序中设置就绪函数?
  • 也许用户倾向于在文档完全加载之前点击某些东西?

标签: javascript jquery


【解决方案1】:

假设Zoom 是您在某处设置的按钮对象,如果我理解您要正确执行的操作,那么您需要的是:

$(function() {
  $(Zoom).click(function() {
    $("#draggable").draggable({
      containment: '#imgContainer',
      scroll: false
    });
  });
});

如果Zoom 已经是一个jQuery 对象,那么Zoom.click(... 就足够了。

【讨论】:

    【解决方案2】:

    https://developer.mozilla.org/en/DOM/element.addEventListener 上查看 Mozilla 文档。 您需要在函数调用中添加第三个参数。只需尝试添加值 false,如下所示:

    Zoom.addEventListener('click', function(){$(document).ready(function(){$("#draggable").draggable({containment: '#imgContainer', scroll: false});});},false);

    【讨论】:

    • 这仍然无法解释为什么中间会有一个 ready() 调用。
    • 有些事情最好不要问。
    【解决方案3】:

    在单击事件中准备好文档似乎有点奇怪。这样做会更有意义。

    $(function(){//Document ready
    $('zoom button').click(function(){
        $("#draggable").draggable(
            {containment: '#imgContainer', 
            scroll: false
        });
    });
    

    });

    我认为这就是您所提供的代码所需要的。也许这会解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 2012-09-01
      相关资源
      最近更新 更多