【问题标题】:Facebook JS (FBJS) event listenerFacebook JS (FBJS) 事件监听器
【发布时间】:2010-11-02 20:24:38
【问题描述】:

所以我在这里查看了大部分 facebook 问题,它绝对证实了我的想法。 Facebook 开发可能是我用过的最糟糕的开发之一。我暂时避免我的咆哮,但作为我来自哪里的说明:尝试了 php sdk,开箱即用,发现我需要将功能放在页面选项卡上,不能 iframe pages 标签,必须使用 FBML(他们将在两个月后退休,但我还不能开始测试 iframe 方法)

无论如何,我在这一点上遇到了 FBJS。它对大多数事情都“足够好”,但由于某种原因,我无法通过添加侦听器(根据 FBJS 文档)将事件注册到对象(特别感兴趣的选择框)。我可以将它直接添加到 html 对象并让它工作,但这是不可取的,我真的很想知道我认为正确的方法是什么,这涉及逻辑和显示的分离。

我想要发生的事情:单击选择框,进行选择,在一个空的 div 中显示选择的文本(稍后添加 Ajax,但这里一次一步)

代码:

<script>
    var obj = document.getElementById('select-id');
    obj.addEventListener('onchange',my_func);
    function my_func(evt){
        var inner = document.getElementById('div-id');
        inner.setTextValue('hey');        // for testing purposes
    }
</script>

当我对选择框进行更改时,上面的代码没有做任何事情。但是,这按计划进行:

<select name="find_state" id="find_state" onchange="my_func();">

我会在开发过程中不情愿地使用这种方法,但真的很想知道我可能做错了什么,或者其他人是否有这个问题?如果有人对此事有任何意见,我很想知道某种形式的 facebook 开发建议,因为应用程序、页面和选项卡的行为似乎完全不同,但似乎他们都应该做同样的事情我?是否有任何统一的方式来开发所有这三个方面,还是我遗漏了什么?

在此先感谢,以及过去的帮助!

【问题讨论】:

    标签: javascript facebook fbjs


    【解决方案1】:

    我认为应该是:

    obj.addEventListener('change',my_func);
    

    (而不是onchange

    【讨论】:

    • 感谢您的快速回复!我试过了,然后又试了一次,没有运气。我还尝试测试其他对象的“click”、“onclick”、“onClick”等。该操作减去“on”的语法是否正确?
    • @2bsharpdev 看起来不需要“开启”:developers.facebook.com/docs/fbjs#events
    【解决方案2】:

    直接来自Facebook documentation

    第三个参数[to addEventListener],boolean useCapture 是必需的(它没有默认值)

    这意味着你应该有:

    obj.addEventListener('change', my_func, false);
    

    【讨论】:

    • 是的,我记得看到过,我尝试了 false 和 true(刚才又做了一次以防万一),但没有效果。还想指出他们的例子没有使用这第三个参数?也许我在这里完全是个白痴,您可以在 FBML 应用程序选项卡中使用 FBJS(我猜这就是您所说的?)
    【解决方案3】:

    使用下面的 html 和 .addEventListener() 附加的事件开始工作。这似乎是未记录的“功能”。

    <select name="find_state" id="find_state" onmousedown="return true;">
    

    这也使事件在用户第一次更改 select 的值时触发。否则它只会在第二个 onchange 事件时触发。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-07
      • 2020-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多