Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从子aspx页面更新JS文件中的变量_Javascript_Jquery_Deck.js - Fatal编程技术网

Javascript 如何从子aspx页面更新JS文件中的变量

Javascript 如何从子aspx页面更新JS文件中的变量,javascript,jquery,deck.js,Javascript,Jquery,Deck.js,我有一个JS文件和下面的代码。我需要从我的子aspx页面更新变量currentIndex的值。现在,这个js引用位于父页面上。我想知道怎么做。应该从child.aspx页面传递什么语法以使currentIndex的更新值无处不在 (function($, global, undefined) { var slides, currentIndex, $container, $fragmentLinks; var events = { ... prev: function() {

我有一个JS文件和下面的代码。我需要从我的子aspx页面更新变量currentIndex的值。现在,这个js引用位于父页面上。我想知道怎么做。应该从child.aspx页面传递什么语法以使currentIndex的更新值无处不在

(function($, global, undefined) {
  var slides, currentIndex, $container, $fragmentLinks;

  var events = {
...
     prev: function() {
       methods.go(currentIndex-1);
     },
...

您可以公开一个函数,将
currentIndex
变量修改为全局范围。但这种方法不能很好地扩展,应该被视为不好的做法,因为它可能导致名称冲突和其他负面影响。所以,如果您需要从子iFrame访问父页面,您应该考虑更好的方法,比如通过消息通信或类似的自定义实现

目前,解决问题的最简单方法是定义一个setter函数,该函数将更新
currentIndex
变量:

(function($, undefined) {
  var slides, currentIndex, $container, $fragmentLinks;

  window.setCurrentIndex = function(indexValue) {
    currentIndex = indexValue;
  };

  var events = {
...
     prev: function() {
       methods.go(currentIndex-1);
     },
...
例如,如果您想将index设置为value
3
,您可以执行以下操作:

window.setCurrentIndex(3);

嗨,Andrii,它说无法设置未定义或null的属性“setCurrentIndex”reference@AnkitKumar,我假设您将窗口作为全局函数传递给包装器函数。我已经更新了我的答案。