Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Meteor应用程序中刷新之前,Materialize material_select()不工作_Javascript_Jquery_Html_Meteor_Materialize - Fatal编程技术网

Javascript 在Meteor应用程序中刷新之前,Materialize material_select()不工作

Javascript 在Meteor应用程序中刷新之前,Materialize material_select()不工作,javascript,jquery,html,meteor,materialize,Javascript,Jquery,Html,Meteor,Materialize,我在Meteor项目的模板中使用以下选择 <div class="input-field"> <select name="color" id="color"> <option value="%23B1365F">Pink</option> <option value="%232952A3">Blue</option> <op

我在Meteor项目的模板中使用以下选择

    <div class="input-field">
        <select name="color" id="color">
            <option value="%23B1365F">Pink</option>
            <option value="%232952A3">Blue</option>
            <option value="%23711616">Red</option>
            <option value="%2328754E">Green</option>
            <option value="%23BE6D00">Orange</option>
            <option value="%23113F47">Sea Blue</option>
            <option value="%235229A3">Purple</option>
            <option value="%23528800">Olive</option>
            <option value="%2388880E">Gold</option>
            <option value="%23333333">Black</option>
        </select>
        <label for="color">Colour: </label>
    </div>
但是,“选择”对话框仅在刷新后工作/显示,在刷新之前,控制台中出现以下错误:

    TypeError: $(...).material_select is not a function
      at null.<anonymous> (settings.js:48)
      at template.js:116
      at Function.Template._withTemplateInstanceFunc (template.js:457)
      at fireCallbacks (template.js:112)
      at null.<anonymous> (template.js:205)
      at view.js:107
      at Object.Blaze._withCurrentView (view.js:538)
      at view.js:106
      at Object.Tracker._runFlush (tracker.js:497)
      at onGlobalMessage (setimmediate.js:102)
TypeError:$(…)。选择的材质不是函数
在空


提前谢谢

这不是最漂亮的解决办法,但它解决了问题

Materialze似乎没有及时添加jQuery函数,以便在Blaze模板的onRendered函数中使用它们

但是,它会将函数添加到
Package.jquery.$.fn.material\u select
对象中

我刚刚创建了自己的jQuery函数,它引用了该对象的函数体:

    (function($){
        $.fn.material_select_fix = Package.jquery.$.fn.material_select;
    })(jQuery)
    $("select").material_select_fix();

我希望这也适用于其他情况…

您是如何添加materialize的?@Stephen Woods Meteor add materialize:materialize在项目根文件夹的cmd中执行
console.log($('select'))时会输出什么
物料选择()之前。
行?另外,当您执行流星列表时,会显示哪个版本的materialize?看起来这是去年的一个已知问题:@StephenWoods我得到的输出是:,我使用的是materialize版本0.97.5,目前它对我不起作用。你知道它为什么不起作用吗?我应该把这个代码放在哪里?在客户端
Meteor.startup
?还是部分?
    (function($){
        $.fn.material_select_fix = Package.jquery.$.fn.material_select;
    })(jQuery)
    $("select").material_select_fix();