将javascript函数扩展到动态加载的文件中

Extend javascript function into dynamically loaded file

本文关键字:文件 加载 动态 javascript 函数 扩展到      更新时间:2023-09-26

这就是问题所在:我有一个嵌入了一些.js文件的页面,在这些文件中有一些javascript函数。现在,如果我使用jQuery加载函数将一些内容加载到我的页面中,前面提到的函数不会影响新包含的元素。。。我能做什么?

function say_ciao(){
    alert('Ciao!!!');
}
$('#home_button').on('click', function(){
    say_ciao();
});
$('#load_button').on('click', function(){
   $('#loader').load('externalpage.php');
});

http://jsfiddle.net/Ppvpp/

非常感谢你的回答,也为我的英语感到抱歉!

使用事件委派。如果用户单击某个元素,它也会"单击"该元素的所有父元素。你可以使用这种行为:

代替

$('#home_button').on('click', function(){

用途:

$('selector for parent of that button').on('click', '#home_button', function() {
  ...
}

问题是,在您调用函数的那一刻,它会将处理程序绑定到与匹配的所有元素。如果添加一个与该选择器匹配的新元素,它将不会附加处理程序(将处理程序附加到元素的时刻已经过去)。诀窍是将处理程序附加到父对象(一个不会动态添加的对象),并且只有在单击的元素与.on()的第二个参数中的选择器字符串匹配时才执行该函数。请参阅文档。