我想在加载页面时初始化一些元素。在不同的页面上,需要初始化不同的元素,但是,如果它在一个文件中,我想保留所有元素。所以我想根据页面的ID为body.onload附加一个不同的函数。
有人可以告诉我这是否可能?如果是,请解释如何完成。
答案 0 :(得分:3)
$(document).ready(function() {
var bodyId = $('body').attr('id');
if (bodyId == 'id1')
myFunction1();
elseif (bodyId == 'id2')
myFunction2();
});
对于这类事情,你应该使用CSS类而不是ID。
答案 1 :(得分:1)
一种可能的模式是这样的:
var Controller = {
homePage: function() { alert('home'); },
contactPage = function() { alert('contact'); }
};
然后,在您的个人页面上:
$(function() {
var id = $(body).attr('id');
Controller[id]();
});
答案 2 :(得分:1)
您应该创建一个文件,您可以在其中放置对象文字,其中的键引用您在body标签中的每个标识符。并根据当前的身份ID调用它们。
例如
var callbacks= {
"id_of_body1": function(){
// will trigger when body tag will id_of_body1
},
"id_of_body2": function(){
// will trigger when body tag will id_of_body2
}
}
// or $(document).ready - if you would call function after document is loaded
// or $(fn) what is shortcut for $(document).ready(fn)
$('body').bind('load', function(){
callbacks[$(this).attr('id')].apply(this,arguments)
} )
答案 3 :(得分:1)
如果您使用的是PHP,请首先使用于JavaScript的pageid
<?php echo "<script>var pageid={$mypageid};</script>"; ?>
对于其他服务器端语言,请使用类似的东西。这应该在头部回应。因此,身体onload将使该变量存活。
然后你可以使用它来选择需要基于pageid执行的语句集,使用switch_case
内部onload事件处理程序或使用其他答案中提到的js object
。
答案 4 :(得分:0)
尝试:
$('body#your-id').each(function() {
listOfFunctions();
});