如何使用jquery在击键组合上更改样式表?

时间:2013-02-02 06:17:05

标签: javascript jquery css

是否可以在键入单词时使用jquery切换到新的样式表(不是在文本框中,只是键入)?我正在尝试在我的网站上创建一个easteregg,但我不确定从哪里开始更换样式表。

3 个答案:

答案 0 :(得分:1)

您的问题有几个部分。

  1. 要侦听不是来自输入字段的击键事件,您可以将事件处理程序附加到文档对象并侦听keypress事件,并且您可以收集键入的键。查看该事件的事件数据结构。在jQuery中,您可以使用$(document).keypress(fn)方法。

  2. 要更改样式,最简单的方法是只添加一个CSS类,以便容器具有一组样式规则,当容器上存在该类时,这些规则会更改内容。这比通过实际更改样式表更简单,更容易跨浏览器工作。在jQuery中,您可以使用$("#whatever").addClass("foo")方法。

答案 1 :(得分:0)

你可以试试这个:

<link id="css1" href="normal.css" type="text/css" rel="stylesheet">

<script>
 if(something written)
  document.getElementById('css1').href = 'another_one.css';
</script>

something written是您检查点击事件或任何您想要的内容

答案 2 :(得分:0)

试试这个:http://jsfiddle.net/UYapL/2/

$('button').click(function () {
    $('[rel="stylesheet"]').attr('href', 'new.css');
    alert($('[rel="stylesheet"]').attr('href'));
});

// with keycontrols

$(window).keyup(function (e) { // (ctrl+i)
    if (e.ctrlKey && e.which == 73) {
        $('[rel="stylesheet"]').attr('href', 'new.css');
        alert($('[rel="stylesheet"]').attr('href'));
    }
});

我不确定你是否在寻找这样的东西:

// for specific word g=71 e=69 o=79
$('body').append('<span id="code" style="display:none;"></span>');
$(window).keyup(function (e) {
  wrd = e.which;
  code = $('#code').append(wrd);
  if ($('#code').text()=='716979') { // geo
    $('[rel="stylesheet"]').attr('href', 'new.css');
    alert($('[rel="stylesheet"]').attr('href'));
    $('#code').text(''); // reset it here.
  }
});