我有一个简单的复选框:
<div class="checkbox_square">
<input id="check_profile_password_show" type="checkbox" value=""></input>
<label for="check_profile_password_show"></label>
<span class="span-small" th:text="#{label.password_show}"></span>
</div>
如果您点击该复选框,我想更改密码输入的输入类型:
/**
*
*/
$(document).ready(function() {
alert("ready");
/**
*
*/
$("#check_profile_password_show").click(function() {
alert("click");
if ($("#profile_password_input").attr("type") == "password") {
$("#profile_password_input").attr("type", "text");
} else {
$("#profile_password_input").attr("type", "password");
}
if ($("#profile_password_input_new").attr("type") == "password") {
$("#profile_password_input_new").attr("type", "text");
} else {
$("#profile_password_input_new").attr("type", "password");
}
if ($("#profile_password_input_repeat").attr("type") == "password") {
$("#profile_password_input_repeat").attr("type", "text");
} else {
$("#profile_password_input_repeat").attr("type", "password");
}
});
});
调用“就绪”警报,但从不调用点击警报,因此我的输入复选框的点击功能不会被覆盖。我包含了正确的javascript文件(准备好的警报工作),我在另一个javascript文件中也有一个类似的机制:
/**
*
*/
$(document).ready(function() {
/**
*
*/
$("#check_login_password_show").click(function() {
if ($("#login_password_input").attr("type") == "password") {
$("#login_password_input").attr("type", "text");
} else {
$("#login_password_input").attr("type", "password");
}
});
});
哪种方法完美无缺。 所以它是相同的代码。一个是工作 - 一个不工作。你能帮我弄清问题是什么吗?
答案 0 :(得分:1)
如果在创建点击处理程序时目标元素不存在,那么它就不会像那样工作。
让它发挥作用的另一种方法是改为定位文档。
$(document).on("click", "#check_profile_password_show", function(){
alert("poop");
});