请原谅我这是一个非常愚蠢的问题。我是JS的新手,我想知道如何在代码的其他部分使用此功能。我查看了教程和其他网站,但是他们定义函数的方式似乎与我在这里的不同。有谁能请我朝正确的方向推动我?
$('.message_div').each(function message_function()
{
console.log("One liner");
var th = $(this);
var ih = $(this).outerHeight(); // outer height
var oh = $(this).find('.message').outerHeight();
console.log("Oh", oh);
var txt = $(this).find('.message').html();
console.log("Ih", ih);
if (oh > ih)
{
th.html('');
th.html('<marquee class="message" direction="up" scrollamount="1" scrolldelay="0">' + txt + '</marquee>')
}
});
//message_function(); -----> Is this the right way?
答案 0 :(得分:1)
关于jQuery的作用,这里有几个错综复杂的内容。稍后引用此函数的简单方法是将其存储在变量中:
function message_function()
{
console.log("One liner");
var th = $(this);
//... (rest of function omitted for brevity)
}
$('.message_div').each(message_function);//note that the function handle is used here,
//and not the result of the function which would
//have used the () to call it
///and then later on
message_function();
但是,这里的问题是this
。 jQuery将在幕后绑定this
(这意味着它在each
中工作正常),但是为了正确地单独调用消息函数,您需要准备好绑定元素。例如,
var element = document.querySelector("div");
message_function.call(element);
或者:
var element = document.querySelector("div");
var elementMessage = message_function.bind(element);
elementMessage();
以下是对this
是什么以及jQuery如何与之交互的更广泛的解释:https://stackoverflow.com/a/28443915/1026459
答案 1 :(得分:0)
在同一档案中:
在该文件之外:
将您刚刚创建的函数移动到.js
文件
将.js
文件包含在所需文档中
确保DOM元素属性与脚本中的内容匹配