小编ada*_*ort的帖子

once:true 和 addEventListener 在 IE11 或 Edge 上不起作用

我试图只触发一次事件侦听器回调。addEventListener方便地有一个我可以传递给它的标志:

once:一个布尔值,表示添加后最多应调用一次侦听器。如果为 true,则在调用侦听器时将自动删除侦听器。

这在IE11 和 Edge之外的所有浏览器中都非常有效。我知道我可以在它触发后手动删除事件侦听器,但是这个标志应该可以工作......我做错了什么,或者这是 IE 的公认问题还是什么?

您是否更喜欢 JSFiddle,否则:

var div = document.getElementById('transition');
var result = document.getElementById('result');

window.grow = function(){
  var width = div.offsetWidth + 50;
  div.style.width = width + 'px';
}

var count = 0;
div.addEventListener('transitionend', function(){
  result.innerHTML = "transitionend has fired " + ++count + " times";
}, { once: true });
Run Code Online (Sandbox Code Playgroud)
#transition{
  background-color: yellow;
  transition: width 2s;
  width: 100px;
}
Run Code Online (Sandbox Code Playgroud)
<div id="transition">
  Content
</div>
<button onclick="grow()">
  Grow the div …
Run Code Online (Sandbox Code Playgroud)

javascript internet-explorer addeventlistener dom-events microsoft-edge

4
推荐指数
1
解决办法
5657
查看次数

什么是Parse Collection?

我正在使用他们的Todo App教程学习Parse(Javascript风格).我正在尝试编写我的第一个查询.在教程中,我发现了这段代码:

var TodoList = Parse.Collection.extend({ ... });
Run Code Online (Sandbox Code Playgroud)

Parse.Collection在他们的JS指南和他们的API文档中找不到任何信息.

有人能说清楚什么Parse.Collection是什么以及什么时候应该使用它?

parse-platform

3
推荐指数
1
解决办法
755
查看次数

如何从transclude函数访问转置槽?

Angular 1.5引入了多插槽转换.根据文件:

transclude对象{slotA:'?myCustomElement'}将元素映射到slotA插槽,可以通过$ transclude函数访问

不幸的是,它没有给出任何这方面的例子.它给出的唯一例子根本没有提到插槽:

$transclude(function(clone, scope) {
  element.append(clone);
  transcludedContent = clone;
  transclusionScope = scope;
});
Run Code Online (Sandbox Code Playgroud)

有人可以使用$ transclude函数了解如何访问每个插槽吗?

angularjs angularjs-ng-transclude

3
推荐指数
1
解决办法
1824
查看次数

我什么时候应该使用组件而不是指令?

Angular 1.5引入了组件:

在Angular中,Component是一种特殊的指令,它使用更简单的配置,适用于基于组件的应用程序结构.

我似乎没有找到使用它们而不是指令的任何优点.据我所知,它们具有更少的功能(例如,没有更多compilelink功能),并引入了一些略有不同的语法.

使用它的文档因为它"更简单"并且有助于过渡到Angular 2,但我们仍然在Angular 2中有指令,对吧?有什么理由我应该将我的指令转换为我的Angular 1.5应用程序中的组件吗?

angularjs angular-directive

3
推荐指数
1
解决办法
917
查看次数

我可以使用逻辑OR || 在PHP变量声明?

此代码有效:

$foo = getFoo();
if (!$foo) $foo = getBar();
if (!$foo) $foo = getJiggy();
if (!$foo) $foo = getWithIt();
Run Code Online (Sandbox Code Playgroud)

我以为我用逻辑运算符看到了它的简化:

$foo = (getFoo() || getBar() || getJiggy() || ...);
Run Code Online (Sandbox Code Playgroud)

我想,第一个真正的语句会获得通过,但相反,它只是设置$ FOO为boolean true,而不是返回值getFoo(),getBar()等等.

有没有像我想的那样简化?

php logical-operators

0
推荐指数
1
解决办法
101
查看次数