Вызов функции JS с атрибутами из другого файла - PullRequest
0 голосов
/ 31 марта 2012

У меня есть файл JS с простой функцией, соответствующей ширине \ высоте divов.Как я могу вызвать эту функцию, используя атрибуты из файла HTML.

Другими словами, я хочу написать функцию matchHeight (div1, div2) во внешнем файле, но вызывать ее из любого места, где я хочу, используя div, который я хочу.

Функция существует, я просто не знаю, как ее назвать так, как я хочу.

Извините, если я не объяснил себя четко.

Спасибо.

Ответы [ 3 ]

1 голос
/ 31 марта 2012

Вы должны связать файл .js в вашем файле .html следующим образом:

<head>
 <script src="yourJSFile.js" type="text/javascript"></script>
</head>
<body onLoad="yourFunction();">
</body>
1 голос
/ 31 марта 2012

Если вы напишите свою функцию MatchHeights(d1,d2){ ... } в файле JS и создадите ссылку на файл на своей странице HTML, как вы обычно связываете любой файл JS, то вы можете вызвать function в любой частиваша страница, если вы вызываете функцию после загрузки связанного файла браузером.

Infact, вы даже можете вызывать ее в других JS файлах, если загружен оригинальный содержащий файл.перед другими браузером.

Чтобы запустить function в момент загрузки страницы, вызовите function в событии onload тега body:

<script type="text/javascript">
var div1 = (some code to get the element)
var div2 = (some code to get the element)
</script>
...
...
<body onload="matchHeight(div1,div2)">
0 голосов
/ 31 марта 2012

Действительно распространенный шаблон в jQuery, который вы можете применить, передается в селекторе CSS. Проще всего, если вы можете просто передать идентификаторы div, но другие решения также будут работать.

Прежде всего, возьмите любые аргументы из вашей строки инициализации. Это способ сложный. Попробуйте вместо этого:

<body onload="init()">

function init() {
  matchHeight("id1", "id2");
}

Как только вы получите, вы получите фактический div в таких функциях, как это:

function matchHeight(id1, id2) {
  var div1 = document.getElementById(id1)
  var div2 = document.getElementById(id2)
  // .. other stuff
}

Если вы используете jQuery, я бы порекомендовал упростить это еще больше, полностью убрав функцию init() из тега body, заменив ее на jquery(document).load(function() { и используя вместо этого обычные селекторы CSS .... matchHeight("#id1", "#id2") и var $div1 = $(id1);, но в любом случае будет работать :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...