我已经使用jQuery API为click
元素的<button>
JavaScript事件安装了一个处理程序,但是当实际点击按钮时,处理程序不会被调用。如何调试未调用事件处理程序的原因?我正在开发Visual Studio 2010并在Google Chrome开发者工具的帮助下进行调试。
我是JavaScript新手,不知道调试方法:)
修改
这是相关按钮的HTML声明:
<button id="start-lint">Submit</button>
相关的JavaScript:
$('button').button();
var btn = $("button#start-lint");
log.debug("Button: %s", btn);
btn.click(function () {
log.debug("Button clicked");
});
如果需要更多信息,请与我们联系。
编辑2
不知怎的,我开始工作,不知道首先出了什么问题,但至少现在我知道如何判断是否找到了一个元素!
答案 0 :(得分:4)
如果代码实际被触发,您只能进行调试,而这似乎不是。
您可以尝试查看它是否使用长度查找选择器。 警报($( “#myselector”)的长度。); 要么 的console.log($( “#myselector”)的长度。);
为了调试javascript,我建议你使用FIREBUG for Firefox(http://getfirebug.com/) - 你可以设置断点,写入控制台等,它可以显示所有变量,对象等。 可以在此处找到教程:http://www.youtube.com/watch?v=2xxfvuZFHsM
(你说jQuery / Javascript的新手,所以希望它有所帮助:D)
答案 1 :(得分:4)
内联JavaScript在页面加载时执行,因此如果在JavaScript之后定义按钮,则代码将无法找到它,因此无法附加处理程序。您需要将JavaScript放在文档就绪(或onload)函数中,这意味着它将在按钮(以及页面上的其他所有内容)加载后执行,和/或将其放在源代码中的按钮之后。
答案 2 :(得分:1)
我猜测$('button').button();
会引发异常,而其余的代码都不会被执行。注释掉该行,看看它是否有效。
原始回复:
debugger;
语句,以查看是否输入了该语句。答案 3 :(得分:1)
您的按钮可能如下所示
<input type="button" value="Click" />
为此绑定一个点击处理程序,如
$(document).ready(function(){
$("input[type='button']").click(function(e){
alert("somebody clicked a button");
});
});
但这种方法的缺点是每按一次按钮都会调用它,以防止你可能想要为你的按钮添加一个id并选择那个特定按钮,例如
。<input type="button" value="Click" id="specific" />
附加一个点击处理程序,如
$(document).ready(function(){
$("#specific").click(function(){
alert("specific button clicked");
});
});
修改强>
在您的情况下,按ID
选择按钮$(document).ready(function(){
$("#start-lint").clcik(function(){
console.log("clicked");
});
});
您也可以使用伪:button
选择器
$(document).ready(function(){
$(":button").click(function(e){
console.log("clicked");
});
});