正在寻找一种在spectrumjs中具有相同类名的两个不同按钮上触发单独事件的方法
Looking for a way to fire separate events on two different buttons with same class name in spectrumjs
我使用的是spectrumjs,当单击一个按钮时,它会调用两个按钮的代码。如果我可以更改其中一个按钮的类名,问题就会得到解决,但是颜色选择器是动态生成的,我不知道如何重新配置代码。
这是我所拥有的:
$(".sp-choose").click(function(){
bgColor = $("#custom").spectrum("get");
bgColor = bgColor.toHexString();
canvas.backgroundColor = bgColor;
canvas.setBackgroundImage();
canvas.renderAll();
});
$(".sp-choose").click(function() {
newColor = $("#custom2").spectrum("get");
newColor = newColor.toHexString();
canvas.freeDrawingBrush.color = newColor;
drawColor();
canvas.renderAll();
});
当我更改文本的颜色并单击sp选择按钮时,我会丢失原始背景色,因为这两种颜色都会被调用。在最初更改颜色,然后正确更改背景色或文本颜色后,不会发生这种情况。主要是在第一次更改文本颜色之后,我才失去了背景。
如果只有两个按钮,并且您不需要漂亮的解决方案,则可以通过索引将这两个按钮分开:
$(".sp-choose").eq(0).click(function(){
bgColor = $("#custom").spectrum("get");
bgColor = bgColor.toHexString();
canvas.backgroundColor = bgColor;
canvas.setBackgroundImage();
canvas.renderAll();
});
$(".sp-choose").eq(1).click(function() {
newColor = $("#custom2").spectrum("get");
newColor = newColor.toHexString();
canvas.freeDrawingBrush.color = newColor;
drawColor();
canvas.renderAll();
});
如果只有两个按钮,则
$(".sp-choose").click(function (e) {
if (this == $(".sp-choose")[0]) {
bgColor = $("#custom").spectrum("get");
bgColor = bgColor.toHexString();
canvas.backgroundColor = bgColor;
canvas.setBackgroundImage();
canvas.renderAll();
}
});
$(".sp-choose").click(function (e) {
if (this == $(".sp-choose")[1]) {
newColor = $("#custom2").spectrum("get");
newColor = newColor.toHexString();
canvas.freeDrawingBrush.color = newColor;
drawColor();
canvas.renderAll();
}
});
或者类似的,会起作用。第一个按钮运行第一个功能,第二个按钮运行第二个功能。您可以将两者合并为一个函数,然后在其中切换。
$(".sp-choose").click(function (e) {
if (this == $(".sp-choose")[0]) {
bgColor = $("#custom").spectrum("get");
bgColor = bgColor.toHexString();
canvas.backgroundColor = bgColor;
canvas.setBackgroundImage();
canvas.renderAll();
}
if (this == $(".sp-choose")[1]) {
newColor = $("#custom2").spectrum("get");
newColor = newColor.toHexString();
canvas.freeDrawingBrush.color = newColor;
drawColor();
canvas.renderAll();
}
});
像这样
http://jsfiddle.net/eLdnt1zf/1/
相关文章:
- 根据两个下拉列表的默认值禁用按钮
- 两个按钮在初次点击后会触发相同的功能
- 解耦按钮(两个按钮同时切换),并根据数据显示相应的按钮
- 当客户端将两个按钮的javascript函数参数修改为相同时,SQL/PHP会更新多行
- 如何使用相同的按钮点击两个功能
- 一个具有两个图像按钮的表单在只能按下一个按钮的情况下发送两个按钮值
- 两个提交按钮,但第一个返回空
- 选择两个单选按钮
- 如何停止两个按钮执行相同的工作?在这种情况下,它们都会滚动到顶部
- 如何将两个按钮组合为一个
- 使用一个输入作为两个按钮的值
- 两个提交按钮(一个隐藏,一个可见)
- ExtJS--如何居中对齐两个工具栏按钮
- 在两个按钮上的单击事件上,使用 jQuery 获取未按下按钮的值
- 一个按钮中的两个onClick功能,并希望一个接一个地发生一个单击功能
- 具有两个提交按钮和两个不同操作的 HTML 表单
- (Angular+Bootstrap)如何阻止两个日期选择器被同一按钮打开
- 两个不同提交按钮的javascript验证
- 我可以用javascript给一个按钮两个命令吗
- 一个按钮两个动作