Add support for class-name as `data-hotkey-scope`
- Ngôn ngữ chính
- JavaScript
- Star
- 3.3k
- Fork
- 99
- Merge trung bình
- 14 giờ 22 phút
- Pull request đã merge (30 ngày)
- 6
Mô tả
## Problem
Currently `data-hotkey-scope` only supports matching the (`event.target` i.e. the scope) as an `id`, this has a few limitations:
1. I may want to specify multiple elements as the scope for my hotkey.
2. I may need to specify an element rendered by a third part library as my scope and do not have access to set an `id` on that element. (This is my current actual issue).
3. Likely there are other uses-cases where an `id` doesn't work as a selector...
## Suggestion
Add the ability to specify a class-name instead of an id for `data-hotkey-scope`.
### Some possible API thoughts:
#### Support a 'mini selector syntax'
The API could be updated to take a `#` prefix (for `id`) or `.` prefix (for `class` name). We could continue to treat an un-prefixed value as an id:
```html
```
#### Add new data-attributes:
We could add `data-hotkey-scope-class` and `data-hotkey-scope-id` attributes. Again we could continue to treat the existing `data-hotkey-scope` as an id scope.
```html
```
## Considerations
### Why not allow full css-selector syntax?
I thought about the possibility of extending `data-hotkey-scope` to support full css selector syntax like `data-hotkey-scope="div#parent > .target-element"` ... but after talking this over with @keithamus we decided the complexity and likely performance cost of such an API would not be worth it given that `id` and `class` name already support many use-cases.
Hướng dẫn đóng góp
Hướng nghiên cứu
Start by locating the code that reads and matches the data-hotkey-scope attribute, then inspect any related tests or examples. Compare the proposed class-name syntax with the alternative data attributes and verify that existing id behavior remains supported. Done means multiple scoped elements can be addressed without full CSS-selector support, with the chosen API covered by tests.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- javascript
- Lĩnh vực
- frontend
- Loại issue
- Tính năng
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 45/100