无法运行功能

时间:2014-05-22 11:20:38

标签: javascript html

重要说明所以人们不会被发现(就像我一样):这可能看起来像jQuery,但它不是
老实说,我应该知道的更好。我使用$作为jQuery以外的东西。那好吧。学过的知识! ~Niet the Dark Absol

代码:

(HTML):

<html>
    <head>
        <script src="selector.js"></script>
    </head>
    <body>
        <label id="id">A label</label>
        <script>
        $("label #id").clicked(function(){
            alert("ASDASD");
        });
        </script>
    </body>
</html>

(JS):

/*
    NAME : SELECTOR.JS
*/

function $(attr){

    // Removed space in front of the variable
    while(attr.charAt(0) == " "){
        attr = attr.substr(1);
        if(attr == ""){
            return 0;
        }
    }

    // Completed the query
    if(attr.length > 1){
        return Array.prototype.slice.call(document.querySelectorAll(attr));
    }else{
        if(attr.length == 1){
            return new Object(document.querySelector(attr));
        }else{
            return null;
        }
    }
}

Object.prototype.clicked = function(script){
    if(typeof(this) == "object"){
        if(this.constructor == Array){
            for(var i = 0; i < this.length; i++){
                this[i].onclick = script;
            }
        }else{
            if(this.constructor == Object){
                console.log("SINGLE OBJECT : " + this);
                console.log("SINGLE OBJECT : ONCLICK : " + this);
                this.onclick = script;
            }else{
                console.log("ERROR : this.constructor is not 'Object' or 'Array'.");
                return null;
            }
        }
    }else{
        console.log("ERROR : typeof(this) is not 'Object'.");
        return null;
    }

    return this;
};

当我点击标签时,我看不到警告框。 我该怎么办?对于js文件,文件名是selector.js。 我需要运行该功能。请帮助!

我认为这是最小化的代码。

2 个答案:

答案 0 :(得分:1)

空格不对,而不是$("label #id")它需要$("label#id")。在label#id之间的空格处,您正在使用labelid="id"内搜索元素,而没有您正在搜索label的空格与id="id"

答案 1 :(得分:-1)

功能

.clicked()
你使用过,不是一个有效的jQuery函数。你要找的是:

$( "#target" ).click(function() {  
       alert( "Handler for .click() called." );
}); 

见这里:

http://api.jquery.com/click/