我有动态元素点击并保持的事件
var timeoutId = 0;
$(document).on('mousedown', '.createbtn', function(){
timeoutId = setTimeout(showNewInfoCreateDlg, 1000);
}).on('mouseup mouseleave', '.createbtn', function() {
clearTimeout(timeoutId);
});
,功能是" showNewInfoCreateDlg" 我需要知道点击并保持的元素的id是什么
function showNewInfoCreateDlg(){
alert($(this).attr('id'));
}
该功能提醒"未定义"
这是我的问题的jsfiddle:
答案 0 :(得分:1)
将其显式绑定到函数:
var timeoutId = 0;
$(document).on('mousedown', '.createbtn', function(){
timeoutId = setTimeout(showNewInfoCreateDlg.bind(this), 1000);
}).on('mouseup mouseleave', '.createbtn', function() {
clearTimeout(timeoutId);
});
澄清一下:bind()
函数将第一个参数的值绑定到this
内的showNewInfoCreateDlg
变量。这称为显式绑定。