-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
一些低调的HTML事件 #96
Comments
input事件
input事件会由哪些标签触发?
input事件在开启contenteditable后也可以使用吗?打开designMode的可以吗?都可以。 contenteditable和designMode下,event target是什么?如何表现?editing host。 type=checkbox或type=radio的元素,input事件怎么表现?input理应会在toggle时触发。 input事件和change事件的区别是什么?input事件在元素的值每次发生变化时都会触发。 其它是否可冒泡?Yes。 一个简单的使用
|
change事件
什么时候会触发change事件?
几个触发change事件的示例
浏览器兼容性怎样?在Gecko内核下,通过键盘改变 哪些
|
Hidden | Text,Search | URL,Telephone | Password | Date,Month,Week,Time | LocalDate and Time | Number | Range | Color | Checkbox,Radio,Button | FileUpload | SubmitButton | ImageButton | Reset Button,Button | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
· | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | · | · | · |
https://html.spec.whatwg.org/multipage/input.html#concept-input-apply
select例子
<label>Choose an ice cream flavor:
<select class="ice-cream" name="ice-cream">
<option value="">Select One …</option>
<option value="chocolate">Chocolate</option>
<option value="sardine">Sardine</option>
<option value="vanilla">Vanilla</option>
</select>
</label>
<div class="result"></div>
const selectElement = document.querySelector('.ice-cream');
selectElement.addEventListener('change', (event) => {
const result = document.querySelector('.result');
result.textContent = `You like ${event.target.value}`;
});
input例子
<input placeholder="Enter some text" name="name"/>
<p id="log"></p>
const input = document.querySelector('input');
const log = document.getElementById('log');
input.addEventListener('change', updateValue) // change事件可以在回车,失焦的时候触发
function updateValue(e) {
log.textContent = e.target.value;
}
vue中测试<input>
的change事件只要输入值变化就会触发吗?
<template>
<input
@input="handleInput"
@change="handleChange"/>
</template>
<script>
export default {
name: 'change',
methods: {
handleInput(e) {
console.log('触发了input事件', e.target.value);
},
handleChange(e) {
console.log('触发了change事件', e.target.value);
},
},
};
</script>
不是。
只有当鼠标失去焦点的时候才会触发change事件,而input事件是只要输入值变化就会触发。
其它
是否可冒泡?Yes。
是否可取消?No。
接口:Event。
事件处理属性:onchange。
hashchange事件hashchange事件会在URL的fragment identifier发生变化时发射,fragment identifier是指URL的#的部分,包括#符号。 // 触发haschange的changeHash函数,它改变了localtion.hash的值
function changeHash() {
location.hash = (Math.random() > 0.5) ? "666" : "777";
}
// hashchange事件触发后的事件处理函数
function HashHandler() {
console.log("The Hash has changed!");
}
// window对象监听hashchange事件,其实也就是location.hash的值的变化
window.addEventListener("hashchange", HashHandler, false); 运行:changeHash(); 用途:
|
DOMContentLoaded事件 vs load事件DOMContentLoadedHTML文档完成加载和解析,无需等待样式表,图片,iframe加载完成。 window.addEventListener('DOMContentLoaded', (event) => {
console.log('DOM fully loaded and parsed');
}); loadHTML页面及所有依赖完全加载,包含样式表,图片,iframe加载完成。 window.addEventListener('load', (event) => {
console.log('page is fully loaded');
}); |
起源于对input的change事件的困惑,因此特地开一个issue记录遇到的浏览器事件。
The text was updated successfully, but these errors were encountered: