2012-08-27 138 views
0

我以前见过这个问题,但是我看到的所有答案都不适用于我的特定问题。我见过的大多数是由于没有在文档就绪功能中使用点击引起的。 setup_calenders和disable_items中的所有东西都会发生,但点击复选框时不会弹出警报。JQuery点击功能不起作用

$(document).ready(setup) 

function setup() { 
$("id_Clearance").click(enable_clearance); 
$("id_Paperwork").click(enable_paperwork); 
$("id_AVSupport").click(enable_support); 
setup_calendars(); 
disable_items(); 
} 

function enable_paperwork() 
{ 
alert("clicked"); 
} 
+0

使用.on()来避免这个问题。 – mddw

+0

这在这种情况下不起作用。 'click()是.bind(“click”,处理函数)的快捷方式,以及.on(“click”,handler)从jQuery 1.7'开始的快捷方式。对于.on(“click”,处理程序)而言,不是for .on(“click”,selector,handler) – jnylen

+0

)您正在更新/替换页面上的元素。 – mddw

回答

6

你缺少#迹象表明,选择应匹配的元素ID:

$("#id_Clearance").click(enable_clearance); 
$("#id_Paperwork").click(enable_paperwork); 
$("#id_AVSupport").click(enable_support); 
+0

谢谢,我知道这是愚蠢的。 – bgrantdev

+1

@bgrantdev别忘了接受答案:) –

+0

我在那里做了一些块设置,让我等待接受:) – bgrantdev

1

这是你想要的吗?

function setup() { 
    $("#id_Clearance").click(enable_clearance); 
    $("#id_Paperwork").click(enable_paperwork); 
    $("#id_AVSupport").click(enable_support); 
    setup_calendars(); 
    disable_items(); 
} 

您需要在元素ID之前包含#以选择id。只是像这样的名字寻找一个标签。例如:

<id_Clearance/> 

jQuery有很好的文档:http://api.jquery.com/category/selectors/

0

我可能是错的,因为我没有你的HTML源代码,但它看起来像你可能不会有ID的正确选择。

目前,你这样做是:

$("id_Clearance").click(enable_clearance); 
$("id_Paperwork").click(enable_paperwork); 
$("id_AVSupport").click(enable_support); 

如果这些确实应该是页面上的元素的ID,您会想要将它改成这样:

$("#id_Clearance").click(enable_clearance); 
$("#id_Paperwork").click(enable_paperwork); 
$("#id_AVSupport").click(enable_support); 

注意选择器开始时的#号。这就是用来选择一个ID。