作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的问题是我有两个事件处理程序,它们执行相同的操作但针对不同的对象。谁能告诉我该怎么做。
$('.url1').keyup(function() {
var limit = 60; // Maximale Anzahl an Zeichen
var count = $(this).val().length;
$('.counter').html(count);
if (count > limit) {
$(this).css('border-color', 'crimson');
} else {
$(this).css('border-color', 'ForestGreen');
}
});
$('.title1').keyup(function() {
var limit = 45; // Maximale Anzahl an Zeichen
var count = $(this).val().length;
$('.counter').html(count);
if (count > limit) {
$(this).css('border-color', 'crimson');
} else {
$(this).css('border-color', 'ForestGreen');
}
});
最佳答案
您的元素之间的唯一区别是您设置的 limit
。因此,您可以对这两个元素应用相同的函数,并将 limit
放在元素本身的 data
属性中,该元素可以在事件触发时读取。像这样:
$('.url1, .title1').keyup(function() {
var limit = $(this).data('limit');
var count = $(this).val().length;
$('.counter').html(count);
if (count > limit) {
$(this).css('border-color', 'crimson');
} else {
$(this).css('border-color', 'ForestGreen');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Url: <input class="url1" type="text" data-limit="60" /><br />
Title: <input class="title1" type="text" data-limit="45" /><br />
<div class="counter"></div>
关于javascript - 如何将两个 jQuery 事件处理程序合并为一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40990801/
我是一名优秀的程序员,十分优秀!