我使用jquery在我的Web应用程序中创建对话框。在正常的应用程序中,我可以使用jquery轻松完成此任务。但是当转向Meteor时,看起来Meteor已经改变了许多普通javascript无法正常工作的东西。这是我的代码:
<template name="post_list">
<button id="ask_question_btn">Ask A Question</button>
<div id="dialog" title="Dialog Title goes here...">Custom Dialog</div>
</template>
这里是相应的javascript:
Template.post_list.events({
'click #ask_question_btn': function(event, template) {
template.$( "#dialog" ).dialog( "open" );
}
});
当我跑步时,没有任何东西显示。我不知道如何调试它。请帮我解决这个问题。
谢谢:)
答案 0 :(得分:2)
我认为$ .dialog()函数不是jQuery的原生函数。我熟悉jQuery UI dialog function,您可以在应用中加入来自Atmosphere的任何jQuery UI package。
此外,在您的代码中,您需要在打开之前初始化对话框。我能够使用mizzao:jquery-ui包获得以下内容:
meteor add mizzao:jquery-ui
然后,在我的帮助文件中:
Template.post_list.rendered = function() { // initialize the dialog once rendered
$( "#dialog" ).dialog({autoOpen: false}); // autoOpen = false means this won't open until we ask it to
}
Template.post_list.events({
'click #ask_question_btn': function(event, template) {
$( "#dialog" ).dialog('open');
}
});
希望对你有用。如果您有任何问题,请告诉我,我很乐意帮忙。