我有一个使用MaterializeCSS运行的Rails应用程序。我通常在应用程序中的许多地方使用Materialize,包括JS对象(如FAB按钮),它都工作得很好......除了按钮。
我有这样一段代码,我在模态表单上加载了一个modal form,我有两个需要JS的materializecss组件:1)一个可折叠列表和2)一个可折叠列表。可折叠列表工作正常,但可折叠列表不能。
下面的代码使它运行(或不运行:-().我使用coffeescript和haml:
这就解释了模态:
modalInit: () ->
$('#photo-modal').modal
dismissible: true
opacity: .5
in_duration: 300
out_duration: 200
starting_top: '4%'
ending_top: '10%'
ready: (modal, trigger) ->
App.PhotoTaginput.refresh()
$('.collapsible').collapsible();
$('.dropdown-button').dropdown();
字符串
请注意,可折叠和可折叠是以相同的方式初始化的!
我用这个脚本加载modal:
showModal: (element) ->
_this = this
photoId = $(element).parents('.photo-widget').data("photoid")
url = '/photos/' + photoId + '?view=modal'
$('#photo-modal > .modal-content').load url, (result) ->
$('#photo-modal').modal('open');
型
这会获取一些HTML,看起来像这样:
.row
.image_info#photo_id{:photo_id=>@photo.id, "data-photo_id"=>@photo.id}
.col.l5
.modal-toolbar
%a.waves-effect.waves-light.btn.like{:type => "button", :class=>current_user.voted_for?(@photo) && "red"}
%i.fa.fa-thumbs-o-up
%a.dropdown-button.btn{"data-activates" => "dropdown1", :href => "#"} Drop Me!
%ul#dropdown1.dropdown-content
%li
%a{:href => "#!"} one
%li
%a{:href => "#!"} two
%li.divider
%li
%a{:href => "#!"} three
.col.l12#modal_image
%img.bg.responsive-img{:src => "#{@photo.url('org')}"}
%ul.collapsible.overlay-menu.overlay-menu-show{"data-collapsible"=>"accordion"}
%li
.collapsible-header.overlay-menu-header
%i.material-icons info
info
.overlay-menu-body.collapsible-body
%table
%tbody
%tr
%td Date
%[email protected]_taken_formatted
%tr
%td ID
%[email protected]
%tr
%td Country
%[email protected]
%tr
%td Model
%[email protected]
%tr
%td Make
%[email protected]
型
它必须与动态初始化的JS有关。我这样说是因为我可以看到,当我按下按钮时,在CSS上的CSS不会改变。这有点奇怪,因为它的初始化方式与可折叠的相同。
我非常确定jquery和materialize库已经正确加载,我已经在应用程序的其他代码部分中使用了这两个库
3条答案
按热度按时间txu3uszq1#
文档说,当你动态创建它时,你必须初始化它。
jQuery插件
仅当动态创建下拉列表时,才需要对下拉列表进行搜索。
字符串
l2osamch2#
原来是一些HTML增强。
我不小心装了这个零件好几次:
字符串
这导致在HTML中出现了几个
#dropdown1
的id,这破坏了HTML的初始化。3gtaxfhh3#
更新页面后,我的菜单只加载了一次,我通过同时插入两个方法解决了这个问题。
个字符