将参数传递给javascript方法

时间:2017-04-04 06:02:58

标签: javascript

我有html代码,如:

<button type="button" class="button button-raised larger" onclick="app.shareOnIg();">Share on Instagram</button>&nbsp;
                                    </div>

 <script type="text/javascript">
        app.initialize();
    </script>

js看起来像:

var app = {
    // Application Constructor
    initialize: function() {
        this.bindEvents();
    },
    bindEvents: function() {
        document.addEventListener('deviceready', this.onDeviceReady, false);
    },
shareOnIg: function () {
        Instagram.share('picture', 'example', function (err) {
                        });
    }
};

我想动态地用实际值替换example。 plz建议如何。我试图在函数中添加一个参数并修改了调用,如

 <button type="button" class="button button-raised larger" onclick="app.shareOnIg(" + myparam + ");">Share on Instagram</button>&nbsp;
                                        </div>

但这不起作用

6 个答案:

答案 0 :(得分:1)

&#13;
&#13;
x = pd.DataFrame(['20.1','19.1','12.3'])
x[0].convert_objects(convert_numeric=True)
&#13;
var app = {
shareOnIg: function (value) {
  console.log(value);
        Instagram.share('picture', value, function (err) {
                        });
    }
};
&#13;
&#13;
&#13;

答案 1 :(得分:1)

在这种情况下一切都是正确的。一个问题是如何传递变量myparam。如果变量是全局变量,我们几乎不能将代码修改为:

<button type="button" class="button button-raised larger" onclick="app.shareOnIg(myparam);">Share on Instagram</button>&nbsp;
                                </div>

只是改变:

 onclick="app.shareOnIg(" + myparam + ");"

为:

onclick="app.shareOnIg(myparam);"

答案 2 :(得分:0)

您似乎需要将参数传递给shareOnIg函数

shareOnIg: function (data) {
   // console.log(data) here to see the parameter passed from the thml
   Instagram.share('picture', 'example', function (err) {});
    }

答案 3 :(得分:0)

相反,不要引人注目:

var app = {
  // Application Constructor
  initialize: function() {
    this.bindEvents();
  },
  bindEvents: function() {
    var btns = document.querySelectorAll('.button');
    document.addEventListener('deviceready', this.onDeviceReady, false);
    btns.forEach((btn)=>btn.addEventListener('click', this.shareOnIg.bind(myparam)));
  },
  shareOnIg: function(param) {
    Instagram.share('picture', 'example', function(err) {});
  }
};

答案 4 :(得分:0)

这个怎么样?

  <input type="text" value="John" id="name">
  
  <button onclick="sayHi('name')">Say Hi</button>
  <script>
    function sayHi(control) {
      var e = document.getElementById(control);
      console.log(e.value);
    }
  </script>

答案 5 :(得分:0)

从长远来看,你会发现更容易省去onclick属性并编写适当的事件处理程序。下面是一个如何完成它的例子。

<button type="button" id="doit" … > … </button>

document.addEventListener("DOMContentLoaded",function() {
    var button=document.querySelector('button#doit');
    button.addEventListener('click',function() {
        app.shareOnIg(myparam);
    }, false);
}, false);

var app = {
    // Application Constructor
        initialize: function() {
            this.bindEvents();
        },
        bindEvents: function() {
            document.addEventListener('deviceready', this.onDeviceReady, false);
        },
        shareOnIg: function (something) {   //  new parameter
            Instagram.share('picture', something, function (err) {

            }
        }
};

您的问题的解决方案是在shareOnIg方法中添加参数变量,并在tmie到来时调用该方法。

在上面的重写中,我有

  • 给予button id以使其可以找到
  • DOMContentLoaded事件添加了一些行为,当页面加载到足以让DOM准备就绪时触发
  • 在行为中,我找到了使用其id的按钮,并将一个函数附加到其click事件。