我需要创建一个自定义事件,它将一些数据传递给事件监听器.我已经创建了一个如下所示
自定义事件
var event = new CustomEvent('store', { 'detail': obj });
document.getElementById("Widget").dispatchEvent(event);
Run Code Online (Sandbox Code Playgroud)
倾听者
document.getElementById("Widget").addEventListener('store', function (e) {
console.log(e.detail);
document.getElementById("result").innerHTML = e.detail.name+"<br>"+e.detail.address;
}, false);
Run Code Online (Sandbox Code Playgroud)
它在Chrome和Firefox等浏览器中运行良好,但在IE11中无效.我收到错误 - trigger()在IE中.
var event = new CustomEvent('store', { 'detail': obj });
document.getElementById("Widget").dispatchEvent(event);
Run Code Online (Sandbox Code Playgroud)
如何使这种跨浏览器兼容?我不想使用jQuery,Listener因为它trigger()可能不在具有jQuery的页面中
提前致谢.
作为我日常工作的一部分,我的任务是在我的反应应用程序中实现分页。我完成了 UI 和状态管理,但陷入了分页算法。我参考了下面列出的许多标准算法
问题是我们的算法略有修改。我所做的是使用这里提到的算法 - https://gist.github.com/kottenator/9d936eb3e4e3c3e02598并实现了具有不同 UI 状态的基本分页组件。( If array[i] === selectedPageFromProps, then highlight that page with different colour)
该算法的作用是将 selectedPage 和totalNumberOfPages 作为参数,并返回带有省略号的所有页面的数组(如果有更多页面)
函数分页(selectedPage,totalPages){返回带有省略号的arrayOfPageNumbers(如果需要)}
该算法应根据设备返回不同的值 - 在移动设备中,我们最多显示 4 个数字,在桌面设备中,我们最多显示 7 个页面。
下面提到该算法的不同返回值。
In Mobile - Max number of pages to be displayed is 4
*****************************************************
pagination(1,4) : 1,2,3,4
pagination(2,4) : 1,2,3,4
pagination(3,4) : 1,2,3,4
pagination(4,4) : 1,2,3,4
If totalPages > 4
pagination(1,99) : 1,2,3,...,99
pagination(2,99) : 1,2,3,...,99
pagination(3,99) : 1,...,3,...,99
pagination(4,99) : 1,...,4,...,99
pagination(5,99) : 1,...,5,...,99 …Run Code Online (Sandbox Code Playgroud) 我有一个这样的嵌套数组var input = [2, 4, 2, 6, 1, [4, 2, 1], [0, 2, 1, 6, [2, 1], [1]], [1], 5];,输出应该以这样的方式排序,所有数字都应该按升序排在最前面,如果数组包含子数组,它应该按其长度的顺序出现。也就是说,长度为 1 的子数组应该在前,长度为 2 的子数组应该在第二位等等。此外,如果其中有数字,则应该升序排列。
var output = [1, 2, 2, 4, 5, 6, [1], [1, 2, 4], [0, 1, 2, 6, [1], [1, 2]]];
下面是我的实现,但它只排序了一层。如何递归调用它?
function sortArray(arr) {
return [...arr]
.sort((a, b) => {
if (Array.isArray(a) && Array.isArray(b)) return a.length - b.length;
else if (Array.isArray(a) || Array.isArray(b)) return 1;
else return a - b;
});
}
Run Code Online (Sandbox Code Playgroud) 我在我的角度应用程序中创建了一个全局的snackBarService。我想panelClass根据消息类型(错误、成功、警告等)进行自定义。我采取的方法是在构造函数中进行全局配置,这有助于定义小吃栏的全局样式/配置,并添加自定义类以根据消息类型更改背景颜色。
SnackBarService.ts
import { Injectable, NgZone } from "@angular/core";
import { MatSnackBar, MatSnackBarConfig } from "@angular/material";
@Injectable({
providedIn: "root",
})
export class SnackbarService {
private config: MatSnackBarConfig;
constructor(private snackbar: MatSnackBar, private zone: NgZone) {
this.config = new MatSnackBarConfig();
this.config.panelClass = ["snackbar-container"];
this.config.verticalPosition = "top";
this.config.horizontalPosition = "right";
this.config.duration = 4000;
}
error(message: string) {
this.config.panelClass = ["snackbar-container", "error"];
this.show(message);
}
success(message: string) {
this.config.panelClass = ["snackbar-container", "success"];
this.show(message);
}
warning(message: string) {
this.config.panelClass = ["snackbar-container", "warning"];
this.show(message);
} …Run Code Online (Sandbox Code Playgroud) 我有一个存储出勤信息的HashMap.我只想将Key转换为Int并检查条件.
以下是我的代码:
import java.util.*;
public class HashClass {
public static void main(String args[]) {
HashMap<Integer, String> attendanceHashMap = new HashMap<Integer, String>();
attendanceHashMap.put(1, "John");
attendanceHashMap.put(2, "Jacob");
attendanceHashMap.put(3, "Peter");
attendanceHashMap.put(4, "Clara");
attendanceHashMap.put(5, "Philip");
for(HashMap.Entry m:attendanceHashMap.entrySet()){
if(Integer.valueOf((int)m.getKey())<3) break;
System.out.println(m.getKey()+" "+m.getValue());
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想像这样打印
3 Peter
4 Clara
5 Philip
Run Code Online (Sandbox Code Playgroud)
我试过这些方法:
- (int)m.getKey() : not working
- Integer.valueOf((int)m.getKey()) : not working
- Integer.valueOf(m.getKey()) : not working
Run Code Online (Sandbox Code Playgroud)
如何实现这一目标?
您好,我有一个关于 Java 包的问题。我创建了一个包含多个类的包[包名称是“animal”,文件名是“Zoo.java”]。我创建了另一个 java 文件,该文件位于另一个包“mypackage”中,并创建了一个名为“MAIN.java”的文件。我尝试从“MAIN.java”访问“animal”包的成员,但它向我抛出一个错误,因为它无法访问“animal”包的类。我知道只有同一包中的类才可以相互访问,或者应该公开。但我只能在“Zoo.java”中将一个类更改为公共类。所以我找到了一种解决方案,为动物包中的每个类创建单独的java文件并将其公开。还有其他方法吗?我的理解是,我们可以将所有类编写在一个文件中并从任何地方导入它们。下面是我的截图。

还有一件事,在java库中它们是如何实现的?包中每个类的单独源文件?