2011-06-01 91 views
0

我有一个<script>标记中下面的代码:。点击事件似乎并不火

$(document).ready(function(){ 
    $("#toolbarReset").click(function() { 
    alert("I've been clicked! Oh, what a world!"); 
    }); 

    ... other, unrelated functions, which all seem to work fine  

}); 

...以下一些HTML:

<span id="toolbarReset" style="line-height: 18px; width: 50px; height: 21px; padding: 0pt 7px 0pt 3px;"> 
    Reset 
</span> 

...但是当我点击“重置”字样时,没有任何反应。

已尝试使用 “id” 设为 “类” 进行更改,并适当地更新jQuery代码(“#toolbarReset”成为“toobarReset”)。尝试在.click事件中输入一些代码以输出到Firebug控制台,并验证“toolbarReset”是DOM中的唯一ID。

+2

如果您删除所有其他的脚本,它的工作原理?您的跨度是否动态添加到DOM?我没有看到你发布的内容有什么问题。 – Chris 2011-06-01 22:08:10

+0

你是否检查它实际运行的ready函数? – Dave 2011-06-01 22:10:04

+0

也许尝试验证您的HTML以及看看是否有任何错误 – 2011-06-01 22:12:34

回答

0

原来是一个计时问题。我的jQuery代码是在元素加载到页面之前运行的,因为我将它们放置在相互之间 - 因此jQuery试图绑定到一个尚不存在的ID。

0

似乎为我工作,你使用什么浏览器?

http://jsfiddle.net/YLCff/

+0

我在Firefox 4和Chrome 11上试过了,两者都有效。 – 2011-06-01 22:10:10

+0

使用Firefox 4 – jefflunt 2011-06-01 22:13:13

+0

我建议通过W3C验证您的页面,看看是否有杂散标签导致问题。 – 2011-06-01 22:18:27

0

也许你有一个以上的#toolbarReset,如果是这样的话,它不会工作,直到您删除其他ID。

+0

想到这一点。为我的实时页面创建了一个“查看源代码”,并确认只有两个“toolbarReset”出现在jQuery代码中,(2)在span标签 – jefflunt 2011-06-01 22:15:23

+0

中检查是否嵌入了所有需要的jquery文件警报,这很奇怪,因为代码正在为我工​​作!尝试jAlert(消息,[标题,回调]) – Al3bed 2011-06-01 22:30:21

+0

#toolbarReset表示html元素的id。 HTML规范规定,id是唯一的。请参阅http://www.w3.org/TR/html401/struct/global.html#h-7.5.2 – mrk 2011-06-01 23:11:00

-1

我检查了它在我的浏览器中的代码。无论如何,尝试使用.on而不是.click。

$("#toolbarReset").on('click',function() { 
// watever code 
} 
+0

带有事件'click'的参数的.click方法和.on方法完全相同。请避免回答那些非常陈旧的问题,并且已经有了他们可以接受的答案,除非您有一些新的或有帮助的/完整的信息。 – 2014-08-15 08:34:09