Javascript 如何扩展或更改链中的jquery focus函数?
鉴于以下情况:Javascript 如何扩展或更改链中的jquery focus函数?,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,鉴于以下情况: $("#dataField").focus().autocomplete({ minLength:5, cache:false, source:"${request.contextPath}/ajaxActions/getdata", select:function (event, ui) { populateForm(ui); } }); 如何更改focus函
$("#dataField").focus().autocomplete({
minLength:5,
cache:false,
source:"${request.contextPath}/ajaxActions/getdata",
select:function (event, ui) {
populateForm(ui);
}
});
如何更改focus函数,使其将光标放在输入当前值的末尾 我还没有实际测试过这个,但它应该或多或少满足您的需要
(function( )
{
var oldFocus = $.fn.focus;
$.fn.focus = function( arg1, arg2 )
{
// ======== Call Old Function
var result = oldFocus.apply( this, arguments );
// ======== Additional Functionality
// Logic here to move your cursor
return result; // -- this preserves ability to chain
}
})( );
有关实际移动光标的信息,请参见以下问题:
这种方法是jQuery在中完成工作的方法,因此应该满足您的要求。非常好的信息,非常感谢!当我测试时,虽然它没有聚焦字段,但一旦我让它工作,我会编辑它,我们可以勾选它,然后你可能已经复制了代码在这里,我做了编辑。特别是调用oldFocus函数的行。我现在使用的是.apply()而不是jQuery的.proxy()——现在应该可以工作了:)这是一种很好的方法,但从技术上讲,这并不是我们所要求的。此解决方案创建一个事件处理程序,这样,如果焦点被授予元素(由用户或以编程方式),那么光标将被移动(在事件发生后)。OP请求了一种方法来实际修改focus()方法本身。此外,由于浏览器行为的变化,这里使用的移动光标的方法(设置元素的值)可能在浏览器之间工作,也可能不工作。感谢您的贡献,但我必须向Kogi提供保持链接能力的答案
$("#dataField").focus(function() {
$(this).val($(this.val());
}).focus();