我知道您需要使用“.on”来使用在加载页面后使用jquery加载的代码。 (至少我认为它的工作方式是这样的)
所以我试过了,但它不知何故根本就没有做过。控制台中也没有错误。
$("#forgot_password").click(function(){
var forgot_password = '<div id="toLogin" style="cursor:pointer;">Prijava</div>'
$("#loginPopupForm").html(forgot_password);
});
$("#toLogin").on("click", function(){
alert("Hello");
});
因此,当我点击#forgot_password时,它会执行第一次点击功能。但是,当我点击#toLogin时,它没有做任何事情,我认为它是因为当我点击#forgot_password时它加载了jquery
答案 0 :(得分:6)
试试这个
$("#loginPopupForm").on("click", "#toLogin", function(){
alert("Hello");
});
答案 1 :(得分:1)
您需要绑定到页面加载时 的元素,例如body
。只需将您的代码更改为下面显示的内容
$("body").on("click", "#forgot_password", function(){
var forgot_password = '<div id="toLogin" style="cursor:pointer;">Prijava</div>'
$("#loginPopupForm").html(forgot_password);
});
$("body").on("click", "#toLogin", function(){
alert("Hello");
});
答案 2 :(得分:0)
您将on
设置为错误的内容。你希望它是:
$(document).on('click', '#toLogin', function() {alert('hello') });
在您执行其他单击事件之前,id不存在,因此jQuery未找到任何设置click事件的元素。您需要拥有一个已在DOM中呈现的元素来设置事件。
答案 3 :(得分:0)
你对这个问题完全正确:on()只针对运行时已经存在的元素。 您在jQuery中需要的是名为Delegated事件,并在Jquery doc page上得到了很好的解释。 代码的差异很小,但这是你应该做的。
答案 4 :(得分:-1)
您必须指定父元素
$("#toLogin").on("click","#loginPopupForm", function(){
alert("Hello");
});
在on
的第二个参数中