Javascript 片上删除
我一直试图在Materialize chips类中从Javascript 片上删除,javascript,jquery,html,css,materialize,Javascript,Jquery,Html,Css,Materialize,我一直试图在Materialize chips类中从div中获取已删除芯片的标记,但没有任何效果 这是我已经尝试过的 $('.chips').on('chip.delete', function(e, chip){ console.log(chip); console.log(e); console.log(chip.tag); }); 以上这些都不起作用 仅使用console.log(chip),我在JavaScript控制台中得到了未定义的错误,但当我删除芯片时,该
div
中获取已删除芯片的标记,但没有任何效果
这是我已经尝试过的
$('.chips').on('chip.delete', function(e, chip){
console.log(chip);
console.log(e);
console.log(chip.tag);
});
以上这些都不起作用
仅使用console.log(chip)
,我在JavaScript控制台中得到了未定义的错误,但当我删除芯片时,该函数正在启动,我无法获得已删除芯片的标记值。我想将标记存储在变量中
我在物化日期动态创建芯片选择:
$('#pm_date').change(function () {
var chipvalue = $(this).val();
if (chipvalue !== "") {
// checking if tag already exits
if ($("#date_chip_select:contains(" + chipvalue + ")").length > 0) {
alert('Date already selected');
} else {
var appendstring = "<div class='chip' id='date_chip_child_" + chip_id + "'>" + chipvalue + "<i class='material-icons close'>close</i></div>";
}
}
});
$('pm#u date')。更改(函数(){
var chipvalue=$(this.val();
如果(芯片值!==“”){
//检查标记是否已经存在
如果($(“#日期#芯片选择:包含(“+chipvalue+”))。长度>0){
警报(“已选择日期”);
}否则{
var appendstring=“”+芯片值+“关闭”;
}
}
});
这里是小提琴所以这里有一件事,
chips.js
是物化
的一部分,它似乎没有公开任何以编程方式添加或删除芯片的方法。它似乎专门监听enter keydown
事件,然后在内部添加芯片
所以,我拼凑了一个解决方案来解决这个问题。我在您的onchange
事件中设置了潜在芯片的值:
$("#datechips").find('input').val($(this).val());
并在以下情况下创建芯片:
这可能不太理想,但您应该能够在未来定制它
我也很难解决这个问题。这就是我在不使用JQuery的情况下捕获添加和删除芯片事件的方式:
功能芯片已删除(e,数据){
console.log(“芯片被删除,文本为:+data.childNodes[0].textContent”);
}
新增功能芯片(e、数据){
console.log(“芯片添加了文本:+data.childNodes[0].textContent”);
}
//
document.addEventListener(“DOMContentLoaded”,函数(e){
log(“DOM已完全加载并解析”);
var firstTag=“初始标记”;
var elems=document.querySelectorAll('.chips');
var实例=M.Chips.init(元素{
数据:[{
标签:第一标签
}],
自动完成选项:{
极限:无限,
最小长度:1
},
占位符:“无搜索…”,
onChipDelete:函数(e,数据){chipDeleted(e,数据)},
onChipAdd:function(e,data){chipAdded(e,data)}
});
});
我的html是这样的
您能给我们看更多的代码吗。。。。。。因为它对我芯片工作正常。delete
不是有效的jQuery事件。这是一个糟糕的方法。更好的方法是,您可以将芯片删除功能与删除芯片时要运行的代码连接起来。我在materialize date Selected上动态添加芯片。您能摆弄它吗?我已经更新了摆弄程序
$('.datepicker').pickadate({
selectMonths: true,
selectYears: 15,
onClose: function() {
// add chip via filling the input and simulating enter
$("#datechips").find('input').trigger({ type : 'keydown', which : 13 });
},
});