Javascript Can';t从miithril视图启动lightbox
我对米特里尔还不熟悉,我正试图对这个问题保持清醒的头脑 我有一个视图,它创建了一个DOM元素,并声明了一个onClick方法。不幸的是,当我尝试启动一个lightbox,比如放大弹出窗口、jqueryui对话框、fancybox或您指定的方法时,它调用了未定义的方法,即使lightbox库已加载 这是米特里尔的问题吗 这是我的密码:Javascript Can';t从miithril视图启动lightbox,javascript,mithril.js,Javascript,Mithril.js,我对米特里尔还不熟悉,我正试图对这个问题保持清醒的头脑 我有一个视图,它创建了一个DOM元素,并声明了一个onClick方法。不幸的是,当我尝试启动一个lightbox,比如放大弹出窗口、jqueryui对话框、fancybox或您指定的方法时,它调用了未定义的方法,即使lightbox库已加载 这是米特里尔的问题吗 这是我的密码: m('a.view-link', { onclick: function() { $.colorbox(
m('a.view-link', {
onclick: function() {
$.colorbox(); // this fails
alert('here is the code'); // alerts do work
$('.view-link').css('border', '2px solid red'); // this works
// $('.white-popup').magnificPopup({ // this claims .magnificPopup is undefined
// type:'inline',
// midClick: true
// });
// $('#dialog').dialog('open'); //jqueryUI dialog claims that .dialog is undefined
},
href: '#'
} , ' Show link in lightbox')
Mithril的工作方式是创建一个虚拟DOM(即表示模板的普通javascript数据结构),然后呈现这个虚拟DOM以创建一个真正的DOM树 当您调用
m()
时,您正在构建这个虚拟DOM,因此此时文档中还不存在DOM元素。为了集成第三方库,正确的方法是通过config
属性(请参阅)
简而言之,config
函数在呈现后被调用,它将元素作为参数,以及一些其他参数来帮助控制其生命周期
语法如下所示:
m("a.view-link", {config: function(el) {
$(el).colorbox() //initialize jquery plugin
}})
可能是
$.colorbox()代码>缺少“主题”元素吗
$(this.colorbox()代码>应该工作得更好