流星模板监听器无法正常工作

时间:2016-10-07 13:21:41

标签: javascript meteor

模板:

<template name="contactModal">
    <div class="remodal contact-modal" data-remodal-id="contactModal">
        <button data-remodal-action="close" class="remodal-close"></button>
        <h2>It's good to talk.</h2>
        <div class="form-container">
            <form>
                <div class="element-container">
                    <input type="text" name="name" placeholder="Your Name"/>
                </div>
                <div class="element-container">
                    <input type="email" name="email" placeholder="Your E-Mail Address"/>
                </div>
                <div class="element-container">
                    <textarea name="message" placeholder="Your Message"></textarea>
                </div>
                <div class="element-container">
                    <a data-action='send-email'>Send</a>
                </div>
            </form>
        </div>
    </div>
</template>

JS:

Template.contactModal.events({
    'click *': (event) => {
        console.log('clicked');
    }
});

Aaaand ......我从来没有得到console.logged文本。我有其他听众工作得很好,所以我对此深感困惑。唯一的区别是contactModal模板是一个由remodal处理的模态,因此在页面加载时是不可见的。

1 个答案:

答案 0 :(得分:0)

对于附加到模态中的元素的事件处理程序以及在页面加载时不可见的其他元素,您需要在显示模式时附加事件侦听器,类似下面的示例使用bootstrap模态事件:

    Template.modalTemplate.events({
        'shown.bs.modal #modal-to-open-id':(event, template) => {
           $('.some-element').on('click', (e) => console.log('clicked');
        }
    });