基于body的ID调用函数onload

时间:2011-12-20 07:42:00

标签: jquery javascript-events onload

我想在加载页面时初始化一些元素。在不同的页面上,需要初始化不同的元素,但是,如果它在一个文件中,我想保留所有元素。所以我想根据页面的ID为body.onload附加一个不同的函数。

有人可以告诉我这是否可能?如果是,请解释如何完成。

5 个答案:

答案 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();
});