我正在学习 javascript,并且正在尝试调整以下内容:
$('#myform').change(function() {
if ($('#sv_I4b').attr('checked')||$('#sv_I4c').attr('checked')){
$('#sv_I5').removeClass('hidden');
} else {
$('#sv_I5').addClass('hidden');
}
});
成为一个具有名称的函数,我可以在不同的事件(例如页面加载等)上调用它。
我还没有完全理解每个元素,但我知道:
if ($('#sv_I4b').attr('checked')||$('#sv_I4c').attr('checked')){
$('#sv_I5').removeClass('hidden');
} else {
$('#sv_I5').addClass('hidden');
}
是函数的核心“逻辑”:if (condition) {then this} else {that}
并或多或少地了解那里正在发生的事情。留下边界 javascript(还有比这更好的术语吗?):
$('#myform').change(function() {...});
我的问题(以下是否正确等):
- 我认为美元表示它是jQuery
- 显然我的表格的ID 将脚本与该形式(命名空间?)内的事件相关
- .change似乎是一个触发器,它可以监听……任何正在发生的变化 在#myform?所以每次在#myform this 中发生变化 运行?这似乎效率低下
- function() 我还不明白是什么 匿名函数或空函数只是定义包含的内容 在 {} 中作为函数?
我的目标:能够拥有类似的东西
function myfunction()
{
if ($('#sv_I4b').attr('checked')||$('#sv_I4c').attr('checked')){
$('#sv_I5').removeClass('hidden');
} else {
$('#sv_I5').addClass('hidden');
}
}
然后
$(function() {myfunction});
所以我可以在页面加载时调用该函数,但我不想失去 .change 语法为我提供的功能(它也会随着用户与页面上的元素交互而改变。
为普遍和繁琐的无知水平道歉
最佳答案
你猜对了如何正确定义函数——也就是说,
function myfunction()
{
if ($('#sv_I4b').attr('checked')||$('#sv_I4c').attr('checked')){
$('#sv_I5').removeClass('hidden');
} else {
$('#sv_I5').addClass('hidden');
}
}
工作正常。然而,这:
$(function() {myfunction});
应该写成:
$(myfunction); // Run on page load.
$('#myform').change(myfunction); // ...and also run it when the form changes.
但是,除非表单在脚本运行时存在,否则第二行在页面加载之前不会真正起作用,因此您可能希望将其更改为:
$(function() { // On page load, run this anonymous function:
myfunction(); // Run the function now (where now, at this point, is page load).
$('#myform').change(myfunction); // ...as well as when the form changes.
});
关于javascript - 我怎样才能把这个javascript变成一个函数?它已经是一个函数了吗?关于js结构的几个很基础的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13521856/