jQuery单击功能可从元素中删除属性并在单独单击时恢复属性
jQuery click function to remove attribute from element and reinstate attribute on separate click
我在SVG画布上有元素,可以根据调色板进行着色。如果单击特定颜色,我正在尝试添加无填充选项,然后在选择任何其他颜色时删除该属性。
JS代码:
if(!$selectedElems){return;}
$selectedElems.each(function(){
$(this)[($(this).prop('tagName') === 'g' ? 'find' : 'filter')]('text[fill],rect[fill],circle,path').attr('fill',colour);
var $noFillColour = $('#mainToolFill div.toolPopup a.color15');
var $otherColour = $('#mainToolFill div.toolPopup a:not("color15")');
if($($noFillColour).bind('click')) {
alert ($noFillColour);
$selectedElems.attr('fill-opacity', '0');
}else{
($($otherColour).bind('click'));
alert ($otherColour);
$selectedElems.removeAttr('fill-opacity');
}
我怀疑变量有问题。当我在警报中看到对象对象时。第一个事件是触发,因此填充不透明度将应用于所选元素,但这与选取哪种颜色无关。单击另一种颜色将机器人删除填充不透明度属性。
我也想知道 :not 选择器是否有问题。我也尝试过:
var $otherColour = $('#mainToolFill div.toolPopup a').not('#mainToolFill div.toolPopup a.color15');
如果有人能对此有所了解,将不胜感激。我注意到这可能不是实现这一点的最经济方法。
如果您需要查看更多代码,请告诉我。
我想我有一些工作:
$('#mainToolFill div.toolPopup a.color15').bind('click',function() {
$selectedElems.attr('fill-opacity','0');
});
$('#mainToolFill div.toolPopup a:not(".color15")').bind('click',function() {
$selectedElems.removeAttr('fill-opacity');
});
唯一的问题是它可能很昂贵,只有在选择了color15后才会添加填充不透明度,但是任何其他颜色通常会去除填充不透明度属性,即使它不存在(除了color15的情况)。
相关文章:
- 手柄'img'单击事件并插入'alt'使用jQuery将属性转换为文本框
- 从其他元素上的单击事件访问image src属性
- 单击按钮时的窗口属性
- 单击TextArea'时,文本区域中的属性名称是什么;s上下箭头按钮
- 如何使用单击属性和工具提示动态创建表格单元格,该工具提示将超链接到页面
- 通过 JQuery 获取单击的复选框的值属性
- 在单击onclick属性后的按钮时执行f:setPropertyActionListener
- 单击没有 src 属性的 iframe 中的元素
- j查询在设置属性后在后续单击时不读取数据属性
- 如何防止jQuery在单击时更改href属性
- 使用CasperJS以特定格式单击具有可变属性值的元素
- 如何选择并单击没有 id 属性的按钮
- 单击“替换”时JS属性值
- 如果作用域值等于单击的元素的属性值,则Ng类
- (JavaScript/HTML)如何在单击按钮时更改样式属性中的显示
- 动态HTML包括一个Angular'ng单击'获胜的属性'不要开火
- 属性单击空值
- 为什么我收到“无法读取空错误的属性'单击'
- 修改文本框以使某些文本在使用占位符属性单击时消失
- 更改属性单击Javascript