如何将以下语句写入一行?
$("#pushkar").on("click", function () {
gula.hideUnhide("#pushkarDiv", "#pushkar", "#pushkar");
});
$("#rashkar").on("click", function () {
gula.hideUnhide("#rashkarDiv", "#rashkar", "#rashkar");
});
$("#kashkar").on("click", function () {
gula.hideUnhide("#kashkarDiv", "#kashkar", "#kashkar");
});
$("#fuskar").on("click", function () {
gula.hideUnhide("#fuskarDiv", "#fuskar", "#fuskar");
});
$("#ashke").on("click", function () {
gula.hideUnhide("#ashkeDiv", "#ashke", "#ashke");
});
我有大约20个如上所述的陈述,所有陈述都占用了大量空间。
我被告知要停止重复并为所有人制作一条线;它累积每个按钮ID。
用单线写出来是更好的策略吗?它不会损害可读性吗?
答案 0 :(得分:3)
试试这个:
$("#pushkar, #rashkar, #kashkar, #fuskar, #ashke").on("click", function () {
var id = "#" + this.id;
gula.hideUnhide(id + "Div", id, id);
});
顺便说一下,保持一个普通班级总是更好。然后你可以这样做:
$(".commonClass").on("click", function () {
var id = "#" + this.id;
gula.hideUnhide(id + "Div", id, id);
});
注意:您发送两次相同的参数,这似乎是不必要的,但我只保留它。
只是给你一个建议,似乎没有必要传递三个论点。只有一个论点会很有效。例如:
hideUnhide(id){
var divId = id + "Div";
// other code here
}
然后点击事件:
gula.hideUnhide("#" + this.id);
答案 1 :(得分:2)
您可以在逗号,分隔的多个元素上添加多个事件处理程序,如下所示。
$('#pushkar, #rashkar, #kashkar, #fuskar, #ashke').on('click', function() {
var divId = $(this).attr('id'); // Get the id of clicked element
gula.hideUnhide('#' + divId + 'Div', '#' + divId, '#' + divId);
});
答案 2 :(得分:0)
在jquery中使用多个选择器 $('selector1,selector2,selector3'... selectorn)
$("#pushkar, #rashkar, #kashkar, #fuskar, #ashke").on("click", function () {
var id = $(this).attr('id');
gula.hideUnhide("#"+id+"Div", "#"+id, "#"+id);
});