如果我要升级jquery,并且我使用jquery-migrate在折旧的代码上给我警告,我是否需要行使页面上的所有功能以捕获所有要升级的内容,或者是否足以加载每个页面并查看控制台日志是否显示错误?
我猜并希望是后者,因为不会在运行时生成脚本或其他奇特的想法来使javascript在加载后进行更改。
答案 0 :(得分:1)
无论何时调用不推荐使用的函数,jquery-migrate插件都会触发警告。因此,必须测试页面上的所有功能:仅加载页面不会显示所有错误。
我举了一个简单的例子来说明这一点:
// should be $('#test').on('click', ...
$('#test').click(function() {
$('#test2').focus(); // should be $('#test').trigger('focus')
})
$('#test2').on('focus', function() {
$(this).val('from js');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-migrate/3.1.0/jquery-migrate.js"></script>
<button id="test">Initial</button>
<input id="test2" />
如果运行该代码段,则在页面加载时会看到错误消息,警告您不能使用click
的简写形式(需要使用.on()
)。 / p>
如果您随后单击按钮,则会看到一个新警告,表示您不能使用focus
的简写形式(需要使用.trigger()
)。
如您所见,页面加载时不会显示第二个错误,因此您需要测试所有功能。