Javascript 在通过jQuery'加载的HTML上使用已经加载的JS;s load()函数?
不确定这是否可行,但我正在尝试使用我最初在动态HTML上请求页面时通过Javascript 在通过jQuery'加载的HTML上使用已经加载的JS;s load()函数?,javascript,jquery,html,load,Javascript,Jquery,Html,Load,不确定这是否可行,但我正在尝试使用我最初在动态HTML上请求页面时通过script标记加载的JavaScript,该动态HTML是通过jQuery的load()函数加载的 例如: 正如您在示例中所看到的,单击弹出框中的链接后,链接将消失。问题是链接应该停止,而您应该看到一个警报 但是,如果我粘贴通过jQuery加载的HTML,它会工作,因此代码很好。问题在于您的。单击将仅对当时存在的元素执行此操作。如果要对选择器将匹配的所有潜在未来元素执行此操作,则需要在较旧版本的jQuery中使用(delga
script
标记加载的JavaScript,该动态HTML是通过jQuery的load()
函数加载的
例如:
正如您在示例中所看到的,单击弹出框中的链接后,链接将消失。问题是链接应该停止,而您应该看到一个警报
但是,如果我粘贴通过jQuery加载的HTML,它会工作,因此代码很好。问题在于您的
。单击将仅对当时存在的元素执行此操作。如果要对选择器将匹配的所有潜在未来元素执行此操作,则需要在较旧版本的jQuery中使用(delgate()
或live()
)。创建元素后必须注册$('.lang')。click()
事件
您需要对加载函数进行回调才能注册此函数。Description
您需要jQuery.live()
或.on()
方法将事件绑定到动态创建的html
根据您使用的jQuery版本,选择.live()
或.on()
.live()从jQuery 1.3开始提供。为当前和将来与当前选择器匹配的所有元素附加事件处理程序
.on()从jQuery 1.7开始提供。将一个或多个事件的事件处理程序函数附加到选定元素
看看我的样品和这个
样品
。。。对于jQuery.live()
。。。对于jQuery.on()
更多信息
您需要使用live将处理程序附加到动态加载的元素
试试这个,它会解决你的问题
$('.lang').live('click',函数(e){
对于动态加载的元素,必须使用on
函数:
$('.open_lang').click(function(e) {
e.preventDefault();
$('#popup').load('http://skins.thehabbos.org/pop_up/language.php').css('display', 'block');
});
$('body').on('click', '.lang', function(e) {
e.preventDefault();
alert('Testing..');
});
(live
和delegate
在JQuery1.7+中被弃用,JQuery1.7+是JSFIDLE的版本)
固定的
$('.lang').on("click", function(e) {
e.preventDefault();
alert('Testing..');
});
e.preventDefault();
alert('Testing..');
});
$('.open_lang').click(function(e) {
e.preventDefault();
$('#popup').load('http://skins.thehabbos.org/pop_up/language.php').css('display', 'block');
});
$('body').on('click', '.lang', function(e) {
e.preventDefault();
alert('Testing..');
});