我有一个Symfony应用程序,其中包含一个创建睫毛的菜单,并使用.js文件将ulr指向每个菜单选项的div加载到div中,使用load()方法。此.js是一个变量,它与引用每个创建的选项卡相反。在这个例子中可以看到这个想法:
http://jsfiddle.net/JMMS_85/o7610t24/
$("#tabs-"+tabCounter).load($(this).attr('href'));
加载到div中的URL有其他链接,所以我创建了另一个.js文件来阻止原始链接“preventDefault()”,我必须在它之前重新加载这些链接div,即显示网址在同一个div中的新链接,所以我必须使用变量计数器上的另一个.js文件来知道选择的实际div是什么。
file1.js
$(document).ready(function () {
$("#tabs").tabs();
var tabCounter = 1;
var cont =1;
//Code creating the tabs omitted
$(".container div a").on("click",function(event) {
event.preventDefault();
tabTitle = $(this).attr("title"),
addTab();
$("#tabs-"+tabCounter).load($(this).attr('href'));
tabCounter++;
$("#tabs").tabs({active: $('.ui-tabs-nav li:last').index()});
});
});
file2.js
$(document).ready(function () {
$("a").click( function(event)
{
event.preventDefault();
$("#tabs-"+tabCounter).load(this.href);
});
我的问题是如何将计数器变量第一个.js文件用于另一个文件。
答案 0 :(得分:4)
您可以在函数之外创建变量。
您可以在此处查看JavaScript Scope的工作原理:http://www.w3schools.com/js/js_scope.asp
答案 1 :(得分:1)
您还可以使用jquery data
将变量保存在DOM中例如:
$('#tabs').data('counter', 1);
var tabCounter = $('#tabs').data('counter');
var tabCounter = $('#tabs').data('counter');
$('#tabs').data('counter', ++tabCounter);