我正在尝试通过单击按钮来更改css样式表。
<head>
<link id='link01' rel="stylesheet" href="blue.css">
</head>
JS
$('.pointcolors').click(function(){
var theme = $(this).attr('data-theme') + '.css';
console.log(theme); // green.css - it's ok
$('#link01').attr('src', theme);
});
但没有风格变化。没有任何事情发生 有什么帮助吗?
答案 0 :(得分:3)
更改
$('#link01').attr('src', theme);
要:
$('#link01').attr('href', theme);
如果查看链接标记,则包含文件名的属性为“href”,而不是“src”。
答案 1 :(得分:3)
我想:
<DataTemplate DataType="{x:Type local:ViewModel+PropertyWrapper}">
<Grid Margin="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="Key"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" x:Name="PLabel" Text="{Binding Name}" Margin="0,0,4,0"/>
<TextBox Grid.Column="1" Text="{Binding Value}"/>
</Grid>
</DataTemplate>
应该是:
<ItemsControl x:Key="PropertyListNoFill" x:Shared="False" Margin="0,3,0,0" Background="{x:Null}" BorderBrush="{x:Null}"
ItemsSource="{Binding}"
Grid.IsSharedSizeScope="True"
HorizontalContentAlignment="Stretch"
ItemTemplateSelector="{StaticResource PropertyTemplateSelector}" >
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<DockPanel LastChildFill="False" IsItemsHost="True"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style>
<Setter Property="DockPanel.Dock" Value="Top"/>
</Style>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
答案 2 :(得分:0)
你可以这样做:
使用jQuery&#39;
.attr()
更改href
标记的link
属性。
$(function() {
$("#block a").on('click', function() {
theme = $(this).data('theme');
$("#link01").attr("href", theme + '.css');
console.log("Stylesheet changed to: " + $("#link01").attr("href"));
return false;
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link id='link01' rel="stylesheet" href="blue.css">
<div id="block">
<a href="#" data-theme="green">Change Stylesheet Link</a>
</div>
&#13;
希望这有帮助!
答案 3 :(得分:-1)
将src
更改为href
应该有效。
$('#link01').attr('href', theme);