我的页面上带有以下选择框:
except
这个在头上
SELECT p.*,
(select count(distinct value) from values where id in (p.left_id, p.right_id)) as "union",
(select count(*)
from (
select v.value from values v where id = p.left_id
intersect
select v.value from values v where id = p.right_id
) t) as intersection,
(select count(*)
from (
select v.value from values v where id = p.left_id
except
select v.value from values v where id = p.right_id
) t) as left_diff,
(select count(*)
from (
select v.value from values v where id = p.right_id
except
select v.value from values v where id = p.left_id
) t) as right_diff
from pairs p
我的 <form>
<select id="themelist">
<option value="style.less">Style 1</option>
<option value="style-2.less">Style 2</option>
</select>
</form>
中也有以下内容:
<link rel="stylesheet/less" type="text/css" href="style.less" id="lesslink">
<script src="https://cdnjs.cloudflare.com/ajax/libs/less.js/3.7.1/less.min.js"></script>
当我从下拉菜单中选择样式2时,没有出现任何错误,但它不会切换页面的样式。我知道我正在使用该功能,通过警报,script.js
是正确的值。
我在这里想念什么?
谢谢
编辑:经过进一步审查,似乎从样式转到样式2会执行一些小的CSS更改,这些更改是一致的,但是是随机的,而从样式2到样式则无济于事。现在,这完全使我感到困惑。也可以使用less.refresh()。另外,控制台中不会引发任何错误。
答案 0 :(得分:0)
我在关于SO的另一个问题中找到了答案,但最终我以另一种方式进行搜索并找到了答案。
jQuery and LESS, stylesheet update only works once
有答案,the following:
这是由于LESS的工作方式所致。它解析较少的文件, 然后将样式属性添加到DOM。实际上,这些似乎 遵循以下格式
<style type='text/css' id='less:<<NAME OF YOUR LESS FILE>>'> /*your parsed content*/ </style>
无法正确加载的原因是因为LESS正在解析 内容,找到现有样式块,而不添加它。 随后的样式块被添加到头部的末尾,所以我 获取样式的“最新”版本。
一旦我将功能更改为包括以下内容:
$('style[id^="less:"]').remove();
在重置href
之前,它运行良好!
很明显,这个问题是不同的,但是这个问题的答案也恰好是这个问题的答案,因为LESS在head
的末尾添加了自己的代码。和我在一起。