如何解决如何使用jQuery从一种样式表更改为另一种样式表?
| 我想在用户单击链接时在两个不同的.css文件之间更改页面的样式。 单击链接后,我希望加载新样式。再次单击它时,我希望加载默认样式。 (换句话说,我希望能够在click事件中在两个不同的样式表之间切换)。$(function(){
$(\'.default\').click(function(){
$(\'#link\').attr(\'href\',\'defaultStyle\' );
$(\'.default\').addClass(\'new\').removeClass(\'default\');
});
});
$(function(){
$(\'.new\').click(function(){
$(\'#link\').attr(\'href\',\'secondStyle\' );
$(\'.new\').addClass(\'default\').removeClass(\'new\');
});
});
上面的代码一次更改了样式,但是第二个块不起作用。
我怎样才能解决这个问题? TIA。
解决方法
尝试
$(\'.new\').live(\'click\',function(){});
http://api.jquery.com/live/
, 这是:
$(\'.new\').addClass(\'default\').removeClass(\'reader\');
应该是:
$(\'.new\').addClass(\'default\').removeClass(\'new\');
另外,您是否检查过firefox / fiddler / etc以查看浏览器是否正在尝试下载第二个样式表?
, 单击处理程序将分配给当前存在的元素。当您执行第二个程序段时,only4ѭ尚不存在(仅在单击.default
之后)。
只需切换类:
$(function(){
$(\'.default\').click(function(){
$(\'#link\').attr(\'href\',function(i,v) {
return v === \'defaultStyle\' ? \'secondStyle\' : \'defaultStyle\';
});
$(this).toggleClass(\'new\').toggleClass(\'default\');
});
});
, 原因是jQuery选择器仅在首次执行JavaScript时才使用.new查找元素。
您应该研究jQuery.live()http://api.jquery.com/live/
, 您可以使用jquery轻松完成此操作,这是一个示例,
$(document).ready(function(){
$(\'#blue\').click(function(event) {
$(\'#text\').css(\'background-color\',\'blue\');
});
$(\'#grey\').click(function(event) {
$(\'#text\').css(\'background-color\',\'grey\');
});
});
<div id=\"text\" style=\"background-color:grey;\" >Hello World</div>
<div id=\"blue\" style=\"cursor:pointer\" >blue</div>
<div id=\"grey\" style=\"cursor:pointer\" >grey</div>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。