尝试使用绑定和取消绑定单击。您不一定关心属性。
function graphicalAppConfirm() {
var graphical = $('#application_graphical').is(':checked');
if (graphical == true) {
$('.default_action').click(function() { return confirm('This setting cannot be undone. Are you sure you wish to continue?'); });
} else {
$('.default_action').unbind('click');
}
}
如果您使用的是 jQuery 1.7+,那么建议使用 on/off 而不是 bind/unbind。请参阅文档http://api.jquery.com/off/
更新:这是一个使用 jQuery 1.8 的示例,您可以根据自己的使用进行修改。当复选框更改时,您可能希望执行开/关功能,这就是本示例的工作方式。
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
</head>
<body>
<button id="theone">Does nothing...</button>
<label for="check"><input id="check" type="checkbox" />Enable Button</label>
<div id="output" style="display:none;">Click registered.</div>
<script>
function callback() {
$("#output").show().fadeOut("slow");
}
$("#check").change(function() {
if (this.checked) {
$("body").on("click", "#theone", callback)
.find("#theone").text("Click Me Enabled!");
} else {
$("body").off("click", "#theone", callback)
.find("#theone").text("Click Me Disabled");
}
});
</script>
</body>
</html>
你可以从那里找出其余的。您可以在 IE 8 http://jsbin.com/ojejar/6中测试并查看它的工作原理