2014-01-17 48 views

回答

0

我需要加载的填充工具是jquery-placeholder对于不支持输入占位符的浏览器。它不提供开箱即用的AMD支持。

首先,我把它包作为AMD模块是这样的:

define(['jquery'], function ($) { 
    (function(window, document, $) { 
    ... polyfill ... 
    }(this, document, jQuery)); 
}); 

然后在main.js我用Modernizr的有条件require()的填充工具脚本:

require(['jquery', 'modernizr'], function ($, Modernizr) { 
    if (!Modernizr.input.placeholder) { 
    require(['jquery', 'placeholder'], function ($) { 
     $('#input').placeholder(); 
    }); 
    } 
}); 
在你的榜样
+3

你需要两倍的jQuery 。如果jQuery占位符是需要jQuery的唯一原因,那么在第一步中我只需要Modernizr而不是jQuery。同时使用[RequireJS shim](http://requirejs.org/docs/api.html#config-shim)代替在模块包装器中复制供应商源代码被认为是更好的做法,因为您将供应商代码保持原样并且可以随时取代它。 –