在javascript初始化时实现重复项

时间:2015-08-25 21:54:02

标签: javascript css materialize

我在joomla网站上玩过materializecss。我有一个T3框架模板(我对Web开发很新)。 我遇到的问题是,每当我使用需要js初始化的项时,它都会被复制,一个是javascript样式,另一个是css。例如,使用选择项或日期选择器时会发生这种情况。我使用这里给出的示例代码: http://materializecss.com/forms.html

另一个奇怪的事情是样式没有完全应用,例如它从未应用的输入字段。

谢谢

编辑:

javascript代码:

  $(document).ready(function() {
    $('select').material_select();
  });

的CSS:

  <label>Materialize Disabled</label>
  <select disabled>
    <option value="" disabled selected>Choose your option</option>
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
    <option value="3">Option 3</option>
  </select>

图像: http://i.stack.imgur.com/AV927.png

当我说样式部分应用时,我的意思是它看起来并不像materializecss网页中所示,看起来它是否被禁用。

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,这就是我能够解决它的方法,希望它适合你。

a)将实体元素的所有初始化放在函数

function initializeMaterialize() {
  // initialize materialize slider
  $('.slider').slider();

  // initialize materialize select
  $('select').material_select();

  // initialize materialize datepicker
  $('.datepicker').pickadate({
    selectMonths: true,
    selectYears: 20,
    onSet: function(ele) { if(ele.select) { this.close(); } },
    format: 'mm/dd/yyyy',
    formatSubmit: 'yyyy-mm-dd'
  });
}

b)然后在`$(window).load(function(){});

上调用该函数
$(window).load(function() {
  initializeMaterialize();
});

这将只进行一次调用,因此您只能获得每个元素的一个副本。

答案 1 :(得分:0)

你会在第一个DOM加载时或之后得到这个副本吗?

因为我认为您初始化相同的函数.material_select() 2次或更多次......