一次。('点击')点击后重置

时间:2014-02-19 12:56:49

标签: javascript jquery

我有这个jQuery代码。我在这里作为评论制作第一行,因为它们在我的问题中并不重要,只是为了结构。我有点击事件,点击td后我有输入字段,里面有文字。我把重点放在文本末尾。但是当我点击时,我想删除焦点,这样我就可以点击名称的中间位置,光标就在那里。当它是一个时它起作用。('点击'),但我需要多次这样做,所以一次点击只能工作一次。

$('td').on('click', function() {    
    //val = $(this).text();
    //console.log(val);
    //rowid = $(this).parents('tr').attr('id');
    //realclass = $(this).attr('class');
    //$("tr").filter("#" + rowid).find("td").filter("." + realclass).find("span").hide(); //hide td->span field..
    //$("tr").filter("#" + rowid).find("td").filter("." + realclass).find("input").show();//..and show input field
    //get focus on end of input val
    SearchInput = $("tr").filter("#" + rowid).find("td").filter("." + realclass).find("input");
    strLength = SearchInput.val().length;
    SearchInput.focus();
    SearchInput[0].setSelectionRange(strLength, strLength);
});

1 个答案:

答案 0 :(得分:2)

问题是单击输入本身也会触发包含<td>元素的click事件(由于事件传播或“冒泡”),这是您不希望发生的。为了防止您在处理输入上的点击事件时调用event.stopPropagation()函数:

$('td input').on('click', function(e) {
    e.stopPropagation();
});