2012-12-21 134 views
1

我正在尝试使用一组文本框来定义JavaScript文件中的一些数据。因此,在文本框中输入团队名称“团队名称”,JavaScript文件使用此文本框存储团队的名称以便打印一组比赛括号。点击按钮后加载javascript文件

JavaScript文件包含在我的<head>所以它加载之前,我实际上已经进入了文本框中的数据。我有一个按钮,这个代码在HTML像这样:

script(type='text/javascript') 
    $('#buttontest').click(function() { 
     $('div.bracket').show(); 
     $('div.teamList').hide(); 
    }); 

所以按下按钮时,文本框都被隐藏,并与用户定义的队名括号应该出现在这里....在我的javascript文件的末尾代码:

$(function() { 
    $('#singleElim8').bracket({ 
     init: singleElim8Data 
    }) 
    $('.bracket').hide(); 
}); 

所以div.bracket内我有类#singleElim8该JavaScript使用。但是,我将如何改变它,以便这个JavaScript初始化括号只运行一次按钮被点击?这种方式括号渲染后文本框已被填写。任何帮助表示赞赏。

+1

您可以在一个功能包,然后致电click事件内部的功能..或移动点击里面的代码事件 –

回答

8

只需使用getScript method of jQuery

它非常容易使用

$('#buttontest').on('click', function() { 
    $.getScript('url to your js file', function(data, textStatus, jqxhr) { 
     // do some stuff after script is loaded 
    }); 
}); 
+1

谢谢,代码现在完美工作。 – germainelol

+0

不适合我... https://jsfiddle.net/uvyetrcb/2/ – marius

3

当你将一个函数作为参数传递给jQuery的它会在的document.ready执行该功能()。它允许你的页面在执行之前加载所有的脚本。

$(function() { 
    $('#buttontest').click(function() { 
     $('div.bracket').show(); 
     $('div.teamList').hide(); 
    }); 

    $('#singleElim8').bracket({ 
     init: singleElim8Data 
    }) 
    $('.bracket').hide(); 
}); 
+0

这没有奏效,我只得到其中前的文本框,甚至已在 – germainelol

+0

硬充满给定的,我们不能看到正在使用的实际代码更多的信息的JavaScript已经跑了一个空白的队名。你有一个可以说明问题的jsfiddle吗? –