我想循环点击事件,以缩短代码。我稍后可能会有30个这样的值。
我的工作代码
$(document).ready(function () {
var last_click = '';
$("#title").click(function() { last_click = 'title'; });
$("#subtitle").click(function() { last_click = 'subtitle'; });
$("#test").click(function() { last_click = 'test'; });
});
这就是我想要的(不工作)
我的猜测是,每个循环都在dom上运行,然后再也没有了,那样点击事件永远不会被触发?
$(document).ready(function () {
var last_click = '';
var contents = new Array();
contents = ['title', 'subtitle', 'test'];
$.each(contents , function(index, value){
$("#" + value).click(function() { last_click = value; });
});
});
如果没有像我那样解决,我会感谢一个很好的解决方法。
答案 0 :(得分:6)
我宁愿为要绑定它的所有元素添加一个类,例如class="last-click"
并将绑定定义为:
$(".last-click").on('click', function() {
last_click = this.id;
}
答案 1 :(得分:0)
如果你真的想缩短它,那就给它们一个类似的课程。
$(document).ready(function () {
var last_click = '';
$(".theclass").click(function() {
last_click = this.id;
});
});
答案 2 :(得分:0)
如果你的按钮或元素有值属性,你可以这样做:
$(document).ready(function() {
var last_click = '';
$("input").click(function() {
last_click = $(this).attr('value');
alert(last_click);
});
});
我假设您正在使用"输入类型="按钮"。此外,您还可以在演示中看到它:http://jsfiddle.net/rS2Gb/5/