我在某个地方找到了这个Javascript,想要学习。因此,我只会就我不知道的事情提出问题。
1)我想知道为什么有一个构建器变量的hashtag。
(function($) {
$(document).ready(function() {
'use strict';
var builder = $('#builder');
2)似乎那里写下的建设者已经与#builder ...
有关 /**
* Gets the json for the form in the embedded builder.
*
* @return string the form's json.
*/
var getFormDocument = function() {
if (document.getElementById('builder').contentWindow.getFormDocument == null) {
return '{}';
}
return document.getElementById('builder').contentWindow.getFormDocument();
};
3)同样,这里是一个哈希标签。它来自css吗?
/**
* Adjusts the builder's height to the window.
*/
var resizer = function() {
var w = $(window).height(),
h = $('header').height(),
t = $('#top-row').height(),
p = 12, // top padding
o = (w - h - t - p) + 'px';
builder.css('height', o);
};
4).js-form-document是JQuery函数之一吗?
/**
* Called when the user is done building their form.
*/
var clickedSave = false;
var save = function() {
clickedSave = true;
jQuery('.js-form-document').val(getFormDocument());
jQuery('#builderModal_signup').reveal();
};
5)为什么有TODO说iframe会疯狂?在用户保存表单后,这个js代码如何连接到数据库?
/**
* Adds listeners for the embedded builder and keeps the
* builder properly positioned.
*/
var init = function() {
// TODO: iframe width at 100% goes bonkers.
var width = $($('div.twelve.columns')[0]).width();
builder.css('display', 'block');
builder.css('width', width + 'px');
$('.js-save').click(save);
};
var hasFields = function() {
var formDocument = JSON.parse(getFormDocument());
if (formDocument.fields == null) {
return false;
}
var sections = formDocument.fields;
if (sections.length === 0 || sections[0].fields.length === 0) {
return false;
} else {
return true;
}
};
6)不要得到哈希标签的含义......
/*
* Triggers a call to action for the user
*/
var firstCallout = function() {
if (clickedSave) {
return;
}
if (!hasFields()) {
jQuery('#builderModal_noFields').reveal();
} else {
jQuery('#builderModal_hasFields').reveal();
}
};
init();
setTimeout(function(){firstCallout();}, 30000);
setInterval(function() {
var onClass = $('.js-save').attr('data-on-class');
if (onClass === '') {
onClass = 'green';
}
if (hasFields()) {
$('.js-save').removeClass('gray').addClass(onClass);
} else {
$('.js-save').removeClass(onClass).addClass('gray');
}
}, 1000);
});
})(jQuery);
var lastHeight = 0;
function resizeBuilder() {
setInterval(function() {
var iframe = document.getElementById('builder');
var padding = 20;
var height = iframe.contentWindow.document.body.scrollHeight;
//chrome counts padding in scroll height and creates never ending height
if (Math.abs(height - lastHeight) <= padding) {
return;
}
height += padding;
if (height < 400) {
height = 400;
}
iframe.height = height + 'px';
lastHeight = height;
}, 1000);
}
答案 0 :(得分:0)
嗯,显然你缺乏 jQuery 的基本知识。 哈希代表DOM元素ID&#39;选择器和点代表类选择器。 关于&#34; TODO&#34; - 在他有足够的iframe之后,这看起来就像开发者的评论。为什么它100%疯狂?没有头绪。
表单由客户端脚本与之通信的一些服务器端脚本/代码处理(有关 AJAX 的更多信息)。
希望有点澄清, 祝你有个美好的一天
答案 1 :(得分:0)
不是&#34;标签&#34;是一个CSS选择器,他正在通过id&#34; builder&#34;
选择对象在CSS中,您可以使用此语法选择内容。
使用标签或类或ID,您可以使用
等属性进行内部选择&#34; DIV [名称= mydiv]&#34;
希望它有所帮助。