Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Facebook JS(FBJS)事件侦听器_Javascript_Facebook_Fbjs - Fatal编程技术网

Javascript Facebook JS(FBJS)事件侦听器

Javascript Facebook JS(FBJS)事件侦听器,javascript,facebook,fbjs,Javascript,Facebook,Fbjs,所以我在这里浏览了facebook上的大部分问题,它完全证实了我的想法。Facebook开发可能是我使用过的最糟糕的开发之一。现在我将避免我的咆哮,但作为对我来自何处的一个说明:尝试过php sdk,开箱即用,发现我需要将功能放在页面选项卡上,不能在页面选项卡上使用iframe,必须使用FBML(他们将在两个月后退休,但我还不能开始测试iframe方法) 无论如何,我在这一点上遇到了FBJ。它在大多数情况下都“足够好”,但由于某些原因,我无法通过添加侦听器(根据FBJS文档)将事件注册到对象(特

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

无论如何,我在这一点上遇到了FBJ。它在大多数情况下都“足够好”,但由于某些原因,我无法通过添加侦听器(根据FBJS文档)将事件注册到对象(特别感兴趣的选择框)。我可以直接将它添加到HTML对象中并使之有效,但这是不可取的,我很想知道我认为正确的方法是什么,这涉及到逻辑和显示的分离。p> 我希望发生的事情:单击选择框,进行选择,在空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>

var obj=document.getElementById('select-id');
对象addEventListener('onchange',my_func);
函数my_func(evt){
var inner=document.getElementById('div-id');
internal.setTextValue('hey');//用于测试目的
}
当我更改选择框时,上面的代码没有任何作用。但是,这将按计划进行:

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

随着我的发展,我将不情愿地使用这种方法,但我真的很想知道我可能做错了什么,或者是否有其他人有这个问题?如果有人对这件事有任何意见,我想知道一些形式的facebook开发建议,因为应用程序、页面和标签的行为似乎完全不同,但它们似乎都应该对我做同样的事情?在这三个方面有没有统一的发展方式,或者我遗漏了什么

提前感谢,以及过去的帮助

我认为应该是:

obj.addEventListener('change',my_func);
(我认为应该是:

obj.addEventListener('change',my_func);
(而不是
onchange

直接来自:

第三个参数[to addEventListener],布尔useCapture是必需的(它没有默认值) 这意味着您应该:

obj.addEventListener('change', my_func, false);
直接来自:

第三个参数[to addEventListener],布尔useCapture是必需的(它没有默认值) 这意味着您应该:

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

使用以下html和.addEventListener()附带的事件开始工作。这似乎是未记录的“特征”



这还允许用户第一次更改select的值时触发事件。否则,它将仅在第二个onchange事件时触发。

使用以下html,附加.addEventListener()的事件将开始工作。这似乎是未记录的“特征”



这还允许用户第一次更改select的值时触发事件。否则,它只会在第二次onchange事件时触发。

感谢您的快速回复!我试过了,只是又试了一次,但没有成功。我还试过测试其他对象的'click'、'onclick'、'onclick'等。该操作是否减去了“on”的正确语法?@2bsharpdev看起来不需要“on”:谢谢您的快速回复!我试过了,只是又试了一次,但没有成功。我还尝试过测试其他对象的“click”、“onclick”、“onclick”等。操作是否减去了“on”的正确语法?@2bsharpdev看起来不需要“on”:是的,我记得看到过,我尝试了false和true(为了以防万一,刚才又尝试了一次),但没有效果。还想指出的是,他们的示例没有使用第三个参数?也许我在这里是个十足的白痴,你可以在FBML应用程序选项卡中使用FBJS(我想你就是这么称呼它的吧?)是的,我记得看到过,我尝试了假和真(刚才又做了一次以防万一),但没有效果。还想指出的是,他们的示例没有使用第三个参数?也许我在这里是个十足的白痴,你可以在FBML应用程序选项卡中使用FBJS(我想这就是你所说的吧?)