Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何扩展或更改链中的jquery focus函数?_Javascript_Jquery_Jquery Ui - Fatal编程技术网

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();