Javascript 发现未定义的js变量
我正在使用.Net中带有部分视图的模式创建一个联系我们表单。除了这个js,我还有其他的工作。我在让这个js识别Javascript 发现未定义的js变量,javascript,jquery,Javascript,Jquery,我正在使用.Net中带有部分视图的模式创建一个联系我们表单。除了这个js,我还有其他的工作。我在让这个js识别cuLink和cuLinkClass时遇到问题。ContactUs功能基于QuickView两者之间的唯一区别(理论上)是ContactUs没有创建按钮和模式,只是创建模式。如蒙协助,将不胜感激 var ContactUs = (function () { var cuLinkClass = 'ico ico-email contact-form'; function
cuLink
和cuLinkClass
时遇到问题。ContactUs
功能基于QuickView
两者之间的唯一区别(理论上)是ContactUs
没有创建按钮和模式,只是创建模式。如蒙协助,将不胜感激
var ContactUs = (function () {
var cuLinkClass = 'ico ico-email contact-form';
function obj(item) {
ContactUs.initialize(item);
return this;
};
obj.onClick = function (evt) {
var target = evt.currentTarget || evt.srcElement;
var url = target.getAttribute('data-rel');
var modal = jQuery('#contactUsModal.modal-content');
modal.innerHTML = '<div class="modal-body"> Loading...</div>';
QuickView.centerElement(modal.parentNode);
jQuery.ajax({
url: url,
sucess: function (m, html) {
setTimeout(function () {
m.innerHTML = html;
QuickView.centerElement(m.parentNode);
}, 30);
}.bind(null, modal)
});
};
obj.composeButton = function() {
var cuLink = document.getElementsByClassName(cuLinkClass);
cuLink.setAttribute('data-target', '#contactUsModal');
cuLink.setAttribute('data-rel', item.getAttribute('rel'));
}
obj.initialize = function (item) {
item.appendChild(cuLink);
if (cuLink.addEventListener) cuLink.addEventListener('click', ContactUs.onClick);
if (cuLink.attachEvent) cuLink.attachEvent('onclick', ContactUs.onClick);
}
return obj;
})();
var QuickView = (function () {
var buttonClassName = 'quick-view-btn';
//var modalContentClassName = 'modal-content';
var miniClassName = 'mini';
var windowWidth = 750;
function obj(item) {
QuickView.initialize(item);
return this;
};
obj.centerElement = function (elem) {
elem.style.marginLeft = parseInt(windowWidth / -2) + 'px';
elem.style.marginTop = parseInt(parseInt(jQuery(elem).height()) / -2) + 'px';
};
obj.composeButton = function (isMini) {
var button = document.createElement('button');
button.setAttribute('class', buttonClassName);
button.setAttribute('data-toggle', 'modal');
button.setAttribute('data-target', '#quickViewModal');
// if mini button, use magnify style instead
if (isMini) {
button.setAttribute('class', buttonClassName + ' ' + miniClassName + ' ' + currentculture);
button.innerHTML = '<i class="ico ico-magnify"></i>';
} else
button.innerHTML = quickViewText;
return button;
};
obj.handleButtonClick = function (evt) {
var target = evt.currentTarget || evt.srcElement;
var url = target.getAttribute('data-rel');
var modal = jQuery('.modal-content')[0];
// add loading message
modal.innerHTML = '<div class="modal-body">Loading...</div>';
QuickView.centerElement(modal.parentNode);
// AJAX call to load details page
jQuery.ajax({
url: url,
success: function (m, html) {
// introduce short delay to allow
// animation to render HTML contents
setTimeout(function () {
m.innerHTML = html;
QuickView.centerElement(m.parentNode);
}, 150);
}.bind(null, modal)
});
};
obj.initialize = function (item) {
var isMini = jQuery(item).hasClass(miniClassName);
var button = QuickView.composeButton(isMini);
// add rel to button
button.setAttribute('data-rel', item.getAttribute('rel'));
// add button to item
item.appendChild(button);
// add event listeners
if (button.addEventListener) button.addEventListener('click', QuickView.handleButtonClick);
else if (button.attachEvent) button.attachEvent('onclick', QuickView.handleButtonClick);
};
return obj;
})();
var ContactUs=(函数(){
var cuLinkClass=‘ico ico电子邮件联系表’;
功能obj(项目){
联系人初始化(项目);
归还这个;
};
obj.onClick=函数(evt){
var target=evt.currentTarget | | evt.src元素;
var url=target.getAttribute('data-rel');
var modal=jQuery('#contactUsModal.modal content');
modal.innerHTML='Loading…';
QuickView.centerElement(modal.parentNode);
jQuery.ajax({
url:url,
suces:function(m,html){
setTimeout(函数(){
m、 innerHTML=html;
QuickView.centerElement(m.parentNode);
}, 30);
}.bind(空,模态)
});
};
obj.composeButton=函数(){
var cuLink=document.getElementsByClassName(cuLinkClass);
setAttribute('data-target','#contactUsModal');
cuLink.setAttribute('data-rel',item.getAttribute('rel');
}
obj.initialize=功能(项目){
项目.儿童(库林克);
如果(cuLink.addEventListener)cuLink.addEventListener('click',ContactUs.onClick));
如果(cuLink.attachEvent)cuLink.attachEvent('onclick',ContactUs.onclick);
}
返回obj;
})();
var QuickView=(函数(){
var buttonClassName='快速查看btn';
//var modalContentClassName=‘模态内容’;
var miniClassName='mini';
窗宽=750;
功能obj(项目){
初始化(项目);
归还这个;
};
obj.centerElement=功能(elem){
elem.style.marginLeft=parseInt(windowWidth/-2)+“px”;
elem.style.marginTop=parseInt(parseInt(jQuery(elem.height())/-2)+px';
};
obj.composeButton=函数(isMini){
var button=document.createElement('button');
setAttribute('class',buttonClassName);
setAttribute('data-toggle','modal');
setAttribute('data-target','#quickViewModal');
//如果是迷你按钮,请改用放大样式
如果(伊斯米尼){
button.setAttribute('class',buttonClassName+''+miniClassName+''+currentculture);
button.innerHTML='';
}否则
button.innerHTML=quickViewText;
返回按钮;
};
obj.handleButtonClick=功能(evt){
var target=evt.currentTarget | | evt.src元素;
var url=target.getAttribute('data-rel');
var modal=jQuery('.modal content')[0];
//添加加载消息
modal.innerHTML='Loading…';
QuickView.centerElement(modal.parentNode);
//加载详细信息页面的AJAX调用
jQuery.ajax({
url:url,
成功:函数(m,html){
//引入短延迟以允许
//渲染HTML内容的动画
setTimeout(函数(){
m、 innerHTML=html;
QuickView.centerElement(m.parentNode);
}, 150);
}.bind(空,模态)
});
};
obj.initialize=功能(项目){
var isMini=jQuery(item).hasClass(miniClassName);
var按钮=QuickView.composeButton(isMini);
//添加rel到按钮
button.setAttribute('data-rel',item.getAttribute('rel');
//将按钮添加到项目
项。追加子项(按钮);
//添加事件侦听器
if(button.addEventListener)button.addEventListener('click',QuickView.handleButtonClick);
else if(button.attachEvent)button.attachEvent('onclick',QuickView.handleButtonClick);
};
返回obj;
})();
您需要在其他人可以阅读的范围内定义库链接。您可以在已定义的cuLinkClass
位置创建变量:
var cuLinkClass = 'ico ico-email contact-form';
var cuLink;
然后您可以将其分配到相同的位置,但忽略var
:
cuLink = document.getElementsByClassName(cuLinkClass);
或者,您可以将变量附加到obj
,然后将其引用为obj.cuLink
(或者this.cuLink
,如果您了解上下文):
我建议您学习一些基本的JS概念,如原型和上下文的使用方法。尝试一下(在文档就绪
之外定义您的变量):
接触性var;
库林克等级;
$(文档).ready(函数(){
ContactUs=(函数(){
cuLinkClass=‘ico ico电子邮件联系表’;
功能obj(项目){
联系人初始化(项目);
归还这个;
};
});
使用jquery解决
var ContactUs = (function() {
jQuery('#exportcc > li:nth-child(1) > a').click(function () {
var url = jQuery('#exportcc > li:nth-child(1) > a').data('url');
jQuery.get(url, function(data) {
jQuery('#contactUsModalContent > .modal-content').html(data);
jQuery('#contactUsModal').modal('show');
});
});
});
这是一堆代码,没有HTML可供运行。一般来说,最好隔离问题,在类似JSFIDLE的东西上复制,只发布完整的细节。您需要向我们提供更多信息。。
<script language="JavaScript" type="text/JavaScript">
var ContactUs;
var cuLinkClass;
$(document).ready(function(){
ContactUs = (function () {
cuLinkClass = 'ico ico-email contact-form';
function obj(item) {
ContactUs.initialize(item);
return this;
};
});
</script>
var ContactUs = (function() {
jQuery('#exportcc > li:nth-child(1) > a').click(function () {
var url = jQuery('#exportcc > li:nth-child(1) > a').data('url');
jQuery.get(url, function(data) {
jQuery('#contactUsModalContent > .modal-content').html(data);
jQuery('#contactUsModal').modal('show');
});
});
});