Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.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 如何通过;这";匿名函数的上下文_Javascript_Jquery_Autocomplete - Fatal编程技术网

Javascript 如何通过;这";匿名函数的上下文

Javascript 如何通过;这";匿名函数的上下文,javascript,jquery,autocomplete,Javascript,Jquery,Autocomplete,我正在尝试使用著名的DevBridge autocomplete插件/库(不确定确切的术语是什么)为一些输入字段构建autocomplete 我的常见问题是,在输入应该确定发送哪个参数的函数时,我丢失了“this”上下文(现在是一个简单的警报($(this).attr('class'))来检查上下文) 我需要将一个参数传递到后端,以知道哪个输入是当前正在处理的输入 我的选择器位于输入html上,如下所示: <input type="text" class="input_actu input

我正在尝试使用著名的DevBridge autocomplete插件/库(不确定确切的术语是什么)为一些输入字段构建autocomplete

我的常见问题是,在输入应该确定发送哪个参数的函数时,我丢失了“this”上下文(现在是一个简单的警报($(this).attr('class'))来检查上下文)

我需要将一个参数传递到后端,以知道哪个输入是当前正在处理的输入

我的选择器位于输入html上,如下所示:

<input type="text" class="input_actu input_autocomplete" id="input_contentactualites0" name"input_contentactualites0" data-id="" value="" size="70" maxlength="300"/>
关于这个问题有很多帖子和解决方案,我试过这样的.bind(this):

    $('.input_autocomplete').devbridgeAutocomplete({
        serviceUrl: 'autocomplete',
        params: {flag: function () {
        alert($(this).attr('class'));
    }.bind(this)},
        minChars: 3,
        type: 'post',
        onSelect: function (suggestion) {
            $(this).attr("data-id", suggestion.data)
        }
});
它似乎不起作用,我也读过关于call()的文章,但我不确定它是否能在我的情况下起作用

另外,我宁愿不要使用全局搜索,因为这不是一个好方法

欢迎您提供任何建议,谢谢您的阅读和帮助:)

也许这有帮助

    var params = {
        flags: function (o) {
            alert($(o).attr('class'));
        }
    };

    var config = {
        serviceUrl: 'autocomplete',
        minChars: 3,
        type: 'post',
        onSelect: function (suggestion) {

            $(this).attr("data-id", suggestion.data);
            //#####################Fire the event:
              params.flags(this);
        }
    };

    var configDev = $.extend(config, params);


    $('.input_autocomplete').devbridgeAutocomplete(configDev);

方法1<代码>绑定-方法2-
箭头
-但是,您似乎要
绑定
。。。那么,您可以从控制台报告任何错误吗?您要绑定的
这个
是什么?您的codeConsole不清楚是否存在任何错误。我在我的原始帖子中添加了我的选择器目标。至少我知道我的语法没有错,我正在继续调查,并将尝试箭头一,如果我找到答案,将进行更新。第一个是我的第二个代码块,现在是好的。你好,不清楚。params是可选的,如何触发事件params.flag?我不明白对不起,params确实是可选的。我可以看到它被发送到自动完成帖子的标题中。谢谢,除了我在参数标志函数中丢失了它,而不是在onSelect中,我也尝试不使用这种方式,因为人们说它不好。但谢谢,我会用它,如果我不能让它正常工作,请至少添加一个简短的描述,实际修复是什么。
    var params = {
        flags: function (o) {
            alert($(o).attr('class'));
        }
    };

    var config = {
        serviceUrl: 'autocomplete',
        minChars: 3,
        type: 'post',
        onSelect: function (suggestion) {

            $(this).attr("data-id", suggestion.data);
            //#####################Fire the event:
              params.flags(this);
        }
    };

    var configDev = $.extend(config, params);


    $('.input_autocomplete').devbridgeAutocomplete(configDev);