所以我试图引入一个css id作为Jquery对象。
我带来一个按钮并为其添加一个事件处理程序:
test.js:
var infobutton = $('#infos');
infobutton.on('click', showinfo);
function showinfo() {
if (state !== 'info') {
setstate('info');
} else {
setstate('play');
}
//pause timer
startTimer = false;
}
test.css:
.navbutton {
position: absolute;
top: 5px;
display: block;
right: 5px;
line-height: 40px;
font-size: 30px;
border: none;
width: 40px;
height: 40px;
text-align: center;
background: #060;
color: #fff;
border-radius: 50% 50%;
transition: 0.5s;
}
#infos {
font-weight: bold;
right: 55px;
}
的test.html:
<button id="infos" class="navbutton">i</button>
但它不起作用。没有创建jQuery对象。
任何帮助?
答案 0 :(得分:3)
从第二个var
前面删除var infobutton
。
var infobutton = $('#infos');
infobutton.on('click', showinfo);
function showinfo() {
if (state !== 'info') {
setstate('info');
} else {
setstate('play');
}
//pause timer
startTimer = false;
}
您只需要第一次使用var
声明变量。第二个var
使JS混淆,因为这意味着您将变量重新分配给不同的值,因此您的click
事件处理程序没有被绑定 - 您只需要infobutton
来引用变量
答案 1 :(得分:1)
这是因为你收到了一个错误。如果您查看浏览器的控制台,您会看到如下内容:
SyntaxError: Unexpected token .
这是因为这一行:
var infobutton.on('click', showinfo);
您使用var
关键字创建变量。你不是在这里创建一个。你正在使用现有的;当Javascript到达.
字符时,它认为“这不允许作为变量名称”,因此它会停止。其余的代码永远不会被执行。
所有你需要的是:
infobutton.on('click', showinfo);
从中我们学到了一个重要的教训:
请务必检查错误控制台。