Jquery中有OR条件吗?

时间:2014-08-05 12:56:37

标签: javascript jquery document-ready

我正在为greasemonkey创建一个用户脚本,将<a>中的链接更改为其他一些站点链接。目前,如果用户在键盘上按(也许是代字号),则会启动它。当文档为ready时,我也希望它能够正常工作。如何设置两个条件?

  • 如果文档准备就绪

  • 用户按〜键

运行jquery函数(更改url)。

这是我的代码

$(document).bind('keypress', function(e) {
    if(e.keyCode==96){
        $('a').each(function(){
            this.href = this.href.replace('youtube.com/watch?v=', 'ytpak.com/?component=video&task=view&id=');
        }); 
    }
});

1 个答案:

答案 0 :(得分:1)

我想我终于得到了你想要的东西。

我仍然认为这有点无意义,因为您的脚本将在加载页面时运行并更改链接。当用户按下键时,将无法执行任何其他操作。

但是,这应该可以解决问题:

// A common function to be called by both event handlers.
function doMyStuff(e) {    
    // When the page is loaded, you won't have a parameter so
    // you check for undefined.
    if (typeof e == "undefined" || e.keyCode == 96) {
        $('a').each(function() {
            this.href = this.href.replace('youtube.com/watch?v=', 'ytpak.com/?component=video&task=view&id=');
        }); 
    }
}

$(function () {
    // On document ready.
    console.log('Document loaded');
    doMyStuff();

    // Use keydown for better browser compatibility.
    $(document).on('keydown', function(e) {
        console.log('Key pressed');
        doMyStuff(e);
    });        
});

Demo在浏览器控制台上查看日志消息(按F12键)。