1

index.html我的页面中有两个 JavaScript 变量。我想在 control.js 中使用这两个变量。

index.html有一些像下面这样的 jQuery 脚本

<script>
$(document).ready(function() {
// load select code from country.html
$('#selectCourse_country').load('country.html select', function() {
    // when country is selected
    $('#selectCourse_country select').change(function() {
        // get id
        var countryId = $(this).children('option:selected').val();
        // load select code from state.html by id
        $('#selectCourse_state').load('state.html #'+countryId,function(){
            $('#selectCourse_state select').change(function(){
                var stateId = $(this).children('option:selected').val();
               //alert(stateId);                    
            });
        });
    });
  });
});
</script> 

我想使用变量的值countryIdstateIdin control.js。我怎样才能将它们从index.htmlto传递给control.js.

4

4 回答 4

2

在您的项目中创建一个可以包含任何对象的全局容器。并且这些对象可以在应用程序的任何 js 页面中全局访问。

window.global ={country_ID : countryId , state_ID : stateId};

然后在 control.js 中使用它们,例如:

var contId =window.global.country_ID;
var statId =window.global.state_ID;
于 2013-07-15T10:48:43.053 回答
0

jQuery 解决方案很好。这是一个使用 cookie。

为简洁起见,我只为 stateID 编码

//Store cookie.
 var stateId = $(this).children('option:selected').val();
 document.cookie = "stateid="+ stateId;

//Get user cookie and match stateID
var cookies = document.cookie.split(';')
for (var i = 0 ; i< cookies.length;i++){
 if(cookies[i].match(/stateid/)){
 //Do stuff
 }
}
于 2013-07-15T10:29:37.717 回答
0

使用 jQuery.cookie ( https://github.com/carhartl/jquery-cookie ) 以下内容应该适合您的需求。

写饼干...

$.cookie("countryId", countryId);
$.cookie("stateId", stateId);

然后在 control.js 你可以得到这样的值......

var countryId = $.cookie("countryId");
var stateId = $.cookie("stateId");
于 2013-07-15T10:25:49.130 回答
0

这可能对您有帮助。

使用modernizer将数据从html传递到另一个js文件。

//Load JS through Modernizer
Modernizr.load([
  // Functional polyfills
  {
    // This just has to be truthy
    test : Modernizr.websockets && window.JSON,
    // socket-io.js and json2.js

    // Arrays of resources to load.
    both : [ '/js/jquery.min.js', '/js/jquery-ui-min.js'],
    complete : function () {
        // Run this after everything in this group has downloaded
        // and executed, as well everything in all previous groups
        $('#selectCourse_country').load('country.html select', function() {
        // when country is selected
        $('#selectCourse_country select').change(function() {
        // get id
        var countryId = $(this).children('option:selected').val();
        // load select code from state.html by id
        $('#selectCourse_state').load('state.html #'+countryId,function(){
            $('#selectCourse_state select').change(function(){
            var stateId = $(this).children('option:selected').val();
               //alert(stateId);                    
            });
        });
        });
      });
    }
  },
  // Run your code afte you've already kicked off all the rest
  // of your app.
  // Pass variables to this js file
  '/js/control.js'
]);
于 2013-07-15T10:40:24.700 回答