[英]JQuery autocomplete doesn't work with materialize.js
I'm using Materialize, Jquery for different things. 我正在使用Materialize,Jquery进行其他操作。 If I don't have the materialize.js file linked to my html-page the autocomplete works flawlessly but if I add the file the autocomplete stops working.
如果我没有将materialize.js文件链接到我的html页面,则自动完成功能会正常运行,但是如果添加该文件,则自动完成功能将停止工作。 Debug shows it skips the whole function.
调试显示它跳过了整个功能。 Putting the function into no conflict mode doesn't help, either:
将函数置于无冲突模式也无济于事:
var $j = jQuery.noConflict();
$j('#'+rowid).autocomplete({});
Does anyone know where the issue lies? 有人知道问题出在哪里吗? EDIT: the whole code function:"
编辑:整个代码功能:“
public AutocompleteArticles(item: OrderLine) {
const outdatedarticle: OrderLine = item;
let rowid = $("#txtsearch" + item.ModelId).attr('id');
let articles: any = OrderPage.Instance().AvailableArticles;
$('#'+rowid).autocomplete({
source: function (request, response) {
var searchtext = request.term.toLowerCase();
response($.map(articles, function (item) {
if (item.ArticleNumber.toLowerCase().includes(searchtext) || item.Name.toLowerCase().includes(searchtext) || item.Description.toLowerCase().includes(searchtext) ) {
return {
label: item.ArticleNumber + ' ' + item.Description,
value: {
ModelId: null,
ArticleModelId: item.ModelId,
OfferModelId: OrderPage.Instance().ModelId,
Name: item.Name,
Discount: item.Discount,
Amount: item.Amount,
Price: item.PriceExclVat,
ArticleNumber: item.ArticleNumber,
ArticleDescription: item.Description,
OrderLineDescription: item.OrderLineDescription,
VAT: item.TaxRate
}
}
}
}));
},
select: function (event, item) {
let articlevalues: OrderLine = item.item.value;
let newarticle: any = outdatedarticle;
newarticle.ArticleModelId = articlevalues.ArticleModelId;
newarticle.ArticleNumber = articlevalues.ArticleNumber;
newarticle.ModelId = articlevalues.ModelId;
newarticle.OfferModelId = articlevalues.OfferModelId;
newarticle.Price = articlevalues.Price;
newarticle.VAT = articlevalues.VAT;
newarticle.Amount = outdatedarticle.Amount();
newarticle.Discount = outdatedarticle.Discount();
newarticle.ArticleDescription = articlevalues.ArticleDescription;
let result: OrderLine = OrderPage.Instance().AddOrderLine(newarticle);
OrderPage.Instance().Order.OrderLines.replace(outdatedarticle, result);
}
});
}
The articles get loaded into 'AvailableArticles' on document ready. 准备好文档后,文章将被加载到“ AvailableArticles”中。 Html:
HTML:
<input id="autocomplete" class="input-field autocomplete" data-bind="value: '', attr: { id: 'txtsearch' + ModelId }, event :{ keyup: OrderPage.Instance().AutocompleteArticles }" placeholder="Zoek" />
I'm also using KnockoutJS. 我也在使用KnockoutJS。 The AutocompleteArticles gets triggered by keyup events.
AutocompleteArticles由键入事件触发。
hmm... I suspect you need to call var $j = jQuery.noConflict()
嗯...我怀疑您需要调用
var $j = jQuery.noConflict()
Before you import materialize
导入
materialize
之前
ie, something like 即,像
/* index.html */
<script src = "jquery.3.1.0.js"></script>
<script>
var $j = jQuery.noConflict()
</script>
<script src = "materialize.1.0.0.js"></script>
/* other codes */
/* nb: $, NOT $j */
$('#'+id).autocomplete({
/* autocomplete init obj */
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.