这是问题所在: 我有一个嵌入了一些.js文件的页面,在这个文件中有一些javascript函数。 现在,如果我使用jQuery加载函数将一些内容加载到我的页面中,前面提到的函数不会影响新包含的元素...... 我该怎么办?
function say_ciao(){
alert('Ciao!!!');
}
$('#home_button').on('click', function(){
say_ciao();
});
$('#load_button').on('click', function(){
$('#loader').load('externalpage.php');
});
非常感谢您的回答,对不起我的英语!
答案 0 :(得分:0)
使用事件委派。如果用户单击某个元素,它将“点击”该元素的所有父元素。您可以使用此行为:
而不是
$('#home_button').on('click', function(){
使用:
$('selector for parent of that button').on('click', '#home_button', function() {
...
}
问题是,在你调用函数的那一刻,它会将处理程序绑定到它在那一点匹配的所有元素。如果添加一个与该选择器匹配的新元素,它将不会附加处理程序(将处理程序附加到元素的那一刻已经通过)。诀窍是将处理程序附加到父对象(不会动态添加的对象),并且仅当被单击的元素与.on()
的第二个参数中的选择器字符串匹配时才执行该函数。请参阅the docs。