我们看到,下面这两个示例都实现了.change(funct(//does ))之后的额外.change(‘change’)。对于jsfiddle中的第一个示例,我去掉了change(),它仍然有效。我不明白为什么他们最终会手动触发改变?
http://api.jquery.com/change/ http://api.jquery.com/selected-selector/
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>change demo</title>
<style>
div {
color: red;
}
</style>
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<select name="sweets" multiple="multiple">
<option>Chocolate</option>
<option selected="selected">Candy</option>
<option>Taffy</option>
<option selected="selected">Caramel</option>
<option>Fudge</option>
<option>Cookie</option>
</select>
<div></div>
<script>
$( "select" )
.change(function () {
var str = "";
$( "select option:selected" ).each(function() {
str += $( this ).text() + " ";
});
$( "div" ).text( str );
})
.change(); // why this line?
</script>
</body>
</html>发布于 2014-09-02 02:11:08
我猜你是在说:
$(function() {
$('.selector').change(function() {
//do something
}).change(); // <<======
});最后一个.change()在页面加载时触发change事件。逻辑是,如果.selector元素有一个默认值,您希望在其值更改时以某种方式使用该默认值,则在页面加载时触发change事件。和您可以对任何事件做同样的事情.
DEMO
$(function() {
$('.city').change(function() {
alert( this.value );
}).change();
});select元素中的第一个select,因为.change().change()并单击Run;除非您选择了其他城市,否则将不会发出警报。https://stackoverflow.com/questions/25614772
复制相似问题