我有一个用户可以输入工作经验的页面。这是通过Cocoon和Simple Forms添加动态表单来完成的。
每次添加新表单时,我都会运行一个函数,以某种形式在某个<input>
上实例化Magicsuggest:
function add_company_autocomplete(element) {
company_magicsuggest = $(element).magicSuggest({});
// show or hide the fields on form instantiation
show_hide_logo_upload(company_magicsuggest, element);
// show or hide the fields as input value changes
$(company_magicsuggest).on('selectionchange', function() {
show_hide_logo_upload(company_magicsuggest, element);
});
}
此函数依次绑定事件处理程序show_hide_logo_upload()
,以查找Magicsuggest字段内容的更改。
我的问题是事件处理程序都共享一个指向同一company_magicsuggest
对象的指针。每次运行上面的函数时,它都会用新对象覆盖company_magicsuggest
,因此,事件处理程序都引用同一个对象,并且无法按照我的要求对不同的对象进行操作。
如何编写add_company_autocomplete()
以便将新创建的Magicsuggest实例传递给事件处理程序?
答案 0 :(得分:0)
我有一个解决方案,但我觉得它只是回避问题而不是解决问题。
function add_company_autocomplete(element) {
$($(element).magicSuggest({})).on('selectionchange', function() {
show_hide_logo_upload(this, element);
}).trigger('selectionchange');
}