首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么额外的.change()或触发器(‘change’)在.change(func())之后;

为什么额外的.change()或触发器(‘change’)在.change(func())之后;
EN

Stack Overflow用户
提问于 2014-09-02 01:48:58
回答 1查看 275关注 0票数 0

我们看到,下面这两个示例都实现了.change(funct(//does ))之后的额外.change(‘change’)。对于jsfiddle中的第一个示例,我去掉了change(),它仍然有效。我不明白为什么他们最终会手动触发改变?

http://api.jquery.com/change/ http://api.jquery.com/selected-selector/

代码语言:javascript
复制
  <!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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-02 02:11:08

我猜你是在说:

代码语言:javascript
复制
$(function() {
    $('.selector').change(function() {
        //do something
    }).change(); // <<======
});

最后一个.change()在页面加载时触发change事件。逻辑是,如果.selector元素有一个默认值,您希望在其值更改时以某种方式使用该默认值,则在页面加载时触发change事件。和您可以对任何事件做同样的事情.

DEMO

代码语言:javascript
复制
$(function() {
    $('.city').change(function() {
        alert( this.value );
    }).change();
});
  1. 当演示加载时,它将警告select元素中的第一个select,因为.change()
  2. 若要验证,请删除.change()并单击Run;除非您选择了其他城市,否则将不会发出警报。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25614772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档