Ember onClick事件未完成操作
Ember onClick event not completing action
我正在开发Ember应用程序,在处理DOM和组件时遇到了麻烦。我有一个companies-expander
组件,它将显示database
中的每个公司,并将展开以显示该公司可用的作业:
//companies.hbs
<h1>Companies</h1>
{{#each model as |company| }}
{{company-expander name=company.name url=company.url address=company.address positions=company.positions}}
{{/each}}
{{outlet}}
公司扩展器组件模板文件如下所示:
<div class="expander">
<a href="javascript:void(0)" id="js-expander-trigger" class="expander-trigger expander-hidden">{{name}}</a>
<div id="js-expander-content" class="expander-content">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. </p>
</div>
</div>
公司扩展器.js文件如下所示:
import Ember from 'ember';
export default Ember.Component.extend({
_setup: Ember.on('didInsertElement', function() {
console.log("doc ready");
var expanderTrigger = document.getElementById("js-expander-trigger");
var expanderContent = document.getElementById("js-expander-content");
$('#js-expander-trigger').click(function(){
console.log("click");
$(this).toggleClass("expander-hidden");
});
})
});
组件成功加载并提取了公司的名称。问题是,点击仅在点击第一个项目时注册,并在返回多少公司记录时注册点击次数。div的类也不会被切换。
除非ID在任何特定页面中都不是唯一的,否则不应使用"getElementById"。在您的情况下,由于组件在每个循环中,因此重复相同的元素ID。
将ID替换为类将在此处工作。以下是工作示例。https://ember-twiddle.com/83604248a4bba2c5092d
相关文章:
- 在jQuery就绪函数上未完成Primefaces布局组件
- 添加innerHTML和自动完成未完成的行
- Async.js队列工作程序未完成
- 回流如何侦听异步操作已完成
- 上的jquery inputmask事件触发器未完成
- Promise.map未完成,因为后续的Promise.ejoin先完成?承诺
- 单击和键控操作可以完成一个功能
- Javascript 未完成循环
- 如何确保所有 ajax 调用都已成功执行(未完成)
- 可以在文本字段中操作“自动完成浏览器数据”
- DTLS 握手未完成 - ORTC 原型
- 当我们使用 ajax post 请求上传文件时,如何取消将文件上传到服务器并删除文件(在上传未完成之间)
- 函数在循环前未完成
- jQuery 转换未完成
- 僵尸.js触发的 AJAX 请求未完成
- 仅在卸载未完成时触发触发器弹出窗口
- Netty-socketio:客户端未完成升级 - 关闭传输
- 反应 Redux 异步操作在完成函数后调用下一个函数
- Ember onClick事件未完成操作
- 调用未完成运行的操作结果的脚本