我在 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');
如果有人可以对此有所了解,将不胜感激。我注意到这可能不是实现这一点的最经济的方式。
如果您需要查看更多代码,请告诉我。