在javascript中用html将对象传递给函数?
我试图通过单击按钮传递对象,但它没有正确传递对象。我怎样才能解决这个问题在javascript中用html将对象传递给函数?,javascript,jquery,html,function,Javascript,Jquery,Html,Function,我试图通过单击按钮传递对象,但它没有正确传递对象。我怎样才能解决这个问题 function addEventToCart(event) { $("#mentorItems").append( `<div id="${event.id}" class="alert alert-dismissible"> <button class="close" data-dismiss="alert" onclick=removeEvent(event)
function addEventToCart(event) {
$("#mentorItems").append(
`<div id="${event.id}" class="alert alert-dismissible">
<button class="close" data-dismiss="alert" onclick=removeEvent(event)>×</button>
</div>`);
事件中的所有属性都是未定义的,所以我假设在传递过程中出现了问题?我尝试过遵循解决方案,但也没有成功。事件是未定义的对象,因为您无法以纯文本形式传递对象(您在编写
removeEvent(event)
我会尝试改变结构:
function addEventToCart(evt) {
var $div = $('<div id="' + evt.id + '" class="alert alert-dismissable"></div>');
var $btn = $('<button class="close" data-dismiss="alert">×</button>');
$btn.on('click', function() {
var color = evt.color;
alert(color);
});
$div.append($btn);
$('#mentorItems').append($div);
}
功能添加车(evt){
变量$div=$('');
var$btn=$(“×;”);
$btn.on('单击',函数()){
var color=evt.color;
警报(颜色);
});
$div.append($btn);
$(“#导师项目”)。追加($div);
}
事件是未定义的对象,因为您不能以纯文本形式传递对象(您在编写removeEvent(事件)
我会尝试改变结构:
function addEventToCart(evt) {
var $div = $('<div id="' + evt.id + '" class="alert alert-dismissable"></div>');
var $btn = $('<button class="close" data-dismiss="alert">×</button>');
$btn.on('click', function() {
var color = evt.color;
alert(color);
});
$div.append($btn);
$('#mentorItems').append($div);
}
功能添加车(evt){
变量$div=$('');
var$btn=$(“×;”);
$btn.on('单击',函数()){
var color=evt.color;
警报(颜色);
});
$div.append($btn);
$(“#导师项目”)。追加($div);
}
事件调用它是一个危险的事件,这里也会有类似window.event的东西。您是否必须通过html传递它,如果是,请使用id
并在以后的javascript中找到您的事件,如果不附加事件处理程序(这是一种更干净的方法),或者通过数据属性添加数据并获取从事件处理程序发送的当前目标元素正在将其重命名为evt fine?我之所以调用它,主要是因为我正在使用FullCalendar,但我会记住您的评论!thanksevent是一个危险的名称,它也会有类似window.event的内容。您是否必须通过html传递它,如果是,请使用如果不附加事件处理程序(这是一种更干净的方法),或者通过数据属性添加数据,并从发送的事件处理程序中获取当前目标元素,并将其重命名为evt,那么稍后在javascript中查找您的事件
。我主要调用它,因为我正在使用FullCalendar,但我会确定记住你的评论!谢谢虽然你的方法比OPs更干净,但你可以考虑帮助OP了解你为什么提供此更改,以及它带来了什么,可能还有哪些其他方法可用以及它们的优缺点,仅代码的答案可能会产生更多的问题;)我在被调用的函数中运行了一堆代码。我非常希望它在一个单独的函数中运行。这不可能吗?当然可能。将“onclick”部分的内联代码更改为:removeEvent(evt);
像这样?$btn.on('click',removeEvent(evt));当我点击按钮时,我的代码似乎没有击中函数。。不。像这样:$btn.on('click',function(){removeEvent(evt);});
@Icepickle我只是对我所做的做做了一个简短的解释:)虽然你的方法比OPs更干净,但你可以考虑帮助OP理解你为什么要提供这种更改,它带来了什么,可能还有什么其他可用的方法以及它们的优点和缺点,纯代码的答案可能会产生更多的问题;)我在被调用的函数中运行了一堆代码。。我非常希望它有单独的功能。。那不可能吗?当然可能。将“onclick”部分的内联代码更改为:removeEvent(evt)像这样$在('点击',移除事件(evt));当我点击按钮时,我的代码似乎没有命中函数..没有。类似这样:$btn.on('click',function(){removeEvent(evt);})代码>@Icepickle我刚刚对我所做的做了一个简短的解释:)