Javascript 片上删除

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控制台中得到了未定义的错误,但当我删除芯片时,该

我一直试图在Materialize chips类中从
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 });
},
});