重要说明所以人们不会被发现(就像我一样):这可能看起来像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。 我需要运行该功能。请帮助!
我认为这是最小化的代码。
答案 0 :(得分:1)
空格不对,而不是$("label #id")
它需要$("label#id")
。在label
和#id
之间的空格处,您正在使用label
在id="id"
内搜索元素,而没有您正在搜索label
的空格与id="id"
。
答案 1 :(得分:-1)
功能
.clicked()
你使用过,不是一个有效的jQuery函数。你要找的是:
$( "#target" ).click(function() {
alert( "Handler for .click() called." );
});
见这里: