javascript - Angular 项目代码中的 $(document).ready Javascript 适用于 Edge,但不适用于 chrome 或 firefox
问题描述
我在我的 Angular 项目的资产文件夹中添加了一个名为“custom.min.js”的文件,该文件只有以下代码:
$(document).ready(function() {
$(".collapse-link").on("click", function() {
console.log("hhahahaah")
var a = $(this).closest(".x_panel"),
b = $(this).find("i"),
c = a.find(".x_content");
a.attr("style") ? c.slideToggle(200, function() {
a.removeAttr("style")
}) : (c.slideToggle(200),
a.css("height", "auto")),
b.toggleClass("fa-chevron-up fa-chevron-down")
return false
}),
$(".close-link").click(function() {
var a = $(this).closest(".x_panel");
a.remove()
})
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="nav navbar-right panel_toolbox">
<li><a class="collapse-link" data-toggle="collapse" data-target="#contenu"><i class="fa fa-chevron-up"></i></a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><i class="fa fa-wrench"></i></a>
<ul class="dropdown-menu" role="menu">
<li><a href="#">Settings 1</a>
</li>
<li><a href="#">Settings 2</a>
</li>
</ul>
</li>
<li><a class="close-link"><i class="fa fa-close"></i></a>
</li>
</ul>
此代码在 Edge 上运行良好,但在 Chrome 或 Firefox 上却不行
解决方案
在 import 语句之后在 component.ts 中声明 $ 变量。
declare var $: any;
并在下面添加您的 jquery 代码 ngOnInit(){}
并用箭头函数替换function
关键字()=>
$(document).ready(()=> {
$(".collapse-link").on("click", ()=> {
console.log("hhahahaah")
var a = $(this).closest(".x_panel")
, b = $(this).find("i")
, c = a.find(".x_content");
a.attr("style") ? c.slideToggle(200, ()=> {
a.removeAttr("style")
}) : (c.slideToggle(200),
a.css("height", "auto")),
b.toggleClass("fa-chevron-up fa-chevron-down")
return false}),
$(".close-link").click(()=> {
var a = $(this).closest(".x_panel");
a.remove()
})
});
推荐阅读
- c# - 持续监视文件夹以将新创建的文件从该文件夹上传到 C# 中的 REST API
- python - 如何在 1 分钟后过期令牌?
- sql - 过滤后如何在一个查询中选择第一行和最后一行,然后在一个查询中的两个值的值之间进行计算
- c++ - OpenGL 鼠标输入 - 绘制函数
- javascript - 如何在多维数组中并排显示元素?
- python - 检查给定字符串是否仅包含一种字符的最佳方法
- reactjs - 在 React Dropzone 中获取本地文件路径
- r - 解析数字以从列中提取多个数字的平均值
- c++ - C++ 如何将不同数量的值存储到包含两个变量的结构中的变量?
- android - com.google.firebase.database.DatabaseException:无法将 java.lang.String 类型的对象转换为 models.firebase.FirebaseTripDataHolder 类型