首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery每个并附加单击事件

jQuery每个并附加单击事件
EN

Stack Overflow用户
提问于 2018-07-23 16:31:31
回答 3查看 96关注 0票数 3

我试图在每个class元素上实现条件单击事件。这是我的代码。

代码语言:javascript
复制
//Edit input field
$('.js-edit, .js-save').each(function(index) {
  $(this).on("click", function() {
    var $form = $(this).closest('form');
    $form.toggleClass('is-readonly is-editing');
    var isReadonly = $form.hasClass('is-readonly');
    $form.find('input').prop('disabled', isReadonly);
  });
});
代码语言:javascript
复制
form.is-readonly .btn-save {
  display: none;
}

form.is-readonly input[disabled],
form.is-readonly textarea[disabled] {
  cursor: text;
  background-color: #fff;
  border-color: transparent;
  outline-color: transparent;
  box-shadow: none;
}

form.is-editing .btn-edit {
  display: none;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form class="is-readonly" action="" method="post">
  <input type="text" class="form-control is-disabled" value="40" disabled>
  <button type="button" class="btn-edit js-edit">Edit</button>
  <button type="button" class="btn-save js-save">Save</button>

  <input type="text" class="form-control is-disabled" value="38" disabled>
  <button type="button" class="btn-edit js-edit">Edit</button>
  <button type="button" class="btn-save js-save">Save</button>

</form>

我有两个输入字段,在点击事件使两个字段都可编辑的时刻,我希望它分别为每个字段工作。

我希望你们能理解我的问题。

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-07-23 16:51:26

这就是你想要实现的吗?

我将每个字段及其对应的按钮包装在一个div中,并对脚本进行了一些修改以匹配新的HTML。

代码语言:javascript
复制
//Edit input field
$('.js-edit, .js-save').each(function(index) {
  $(this).on("click", function() {
    var $group = $(this).closest('.group');
    $group.toggleClass('is-readonly is-editing');
    var isReadonly = $group.hasClass('is-readonly');
    $group.find('input').prop('disabled', isReadonly);
  });
});
代码语言:javascript
复制
.group.is-readonly .btn-save {
  display: none;
}

.group.is-readonly input[disabled],
.group.is-readonly textarea[disabled] {
  cursor: text;
  background-color: #fff;
  border-color: transparent;
  outline-color: transparent;
  box-shadow: none;
}

.group.is-editing .btn-edit {
  display: none;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="" method="post">
  <div class="group is-readonly">
   <input type="text" class="form-control is-disabled" value="40" disabled>
   <button type="button" class="btn-edit js-edit">Edit</button>
   <button type="button" class="btn-save js-save">Save</button>
  </div>

  <div class="group is-readonly">
    <input type="text" class="form-control is-disabled" value="38" disabled>
    <button type="button" class="btn-edit js-edit">Edit</button>
    <button type="button" class="btn-save js-save">Save</button>
  </div>

</form>

票数 2
EN

Stack Overflow用户

发布于 2018-07-23 16:34:47

简单地分别附加事件:

代码语言:javascript
复制
$(document).on('click', '.js-edit', function(){
  console.log('Coming from Edit Button')
});
$(document).on('click', '.js-save', function(){
  console.log('Coming from SaveButton')
});
票数 0
EN

Stack Overflow用户

发布于 2018-07-23 16:41:53

您为表单元素设置了类,但这是错误的。您应该为输入父类设置类(如容器类)

代码语言:javascript
复制
$('.js-edit, .js-save').on("click", function() {
  var $form = $(this).closest('form');
  var container = $(this).closest('.container');
  container.toggleClass('is-readonly is-editing');
  container.find('input').prop('disabled', $form.hasClass('is-readonly'));
});
代码语言:javascript
复制
.container.is-readonly .btn-save {
  display: none;
}

.container.is-editing .btn-edit {
  display: none;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="" method="post">
  <div class="container is-readonly">
    <input type="text" class="form-control is-disabled" value="40" disabled>
    <button type="button" class="btn-edit js-edit">Edit</button>
    <button type="button" class="btn-save js-save">Save</button>
  </div>
  <div class="container is-readonly">
    <input type="text" class="form-control is-disabled" value="38" disabled>
    <button type="button" class="btn-edit js-edit">Edit</button>
    <button type="button" class="btn-save js-save">Save</button>
  </div>
</form>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51474576

复制
相关文章

相似问题

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