Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.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事件回调的小部件代码_Javascript - Fatal编程技术网

允许javascript事件回调的小部件代码

允许javascript事件回调的小部件代码,javascript,Javascript,我正在创建一个用于提交民意调查之类的web应用程序。我开发了一些小部件代码,当出现时,通过ajax请求从数据库中获取投票,并将其放入html中,用户可以对投票进行投票 因此,对于作为脚本嵌入到html中的widget.js文件: $(document).ready(function () { if ($('.loadPoll')[0]) { var name = $('.loadPoll').data("pollname"); var IP_Address = '-1';

我正在创建一个用于提交民意调查之类的web应用程序。我开发了一些小部件代码,当出现
时,通过
ajax
请求从数据库中获取投票,并将其放入html中,用户可以对投票进行投票

因此,对于作为脚本嵌入到html中的widget.js文件:

$(document).ready(function () {
  if ($('.loadPoll')[0]) {


    var name = $('.loadPoll').data("pollname");
    var IP_Address = '-1';
    $.ajax({
      url: 'http://url.com:3000/loadPoll',
      dataType: 'jsonp',
      data: {
        pollName: name
      },
      success: function (data) {
        poll = data.poll;
        $(".loadPoll").html(data.html);
        $(document).on('click', '#SubmitVote', function () {
          var selectedValue;
          var radios = document.getElementsByTagName('input');
          for (var i = 0; i < radios.length; i++) {
            if (radios[i].type === 'radio' && radios[i].checked) {
              selectedValue = radios[i].value;
            }
          }
          console.log(selectedValue);
          $.getJSON("http://jsonip.appspot.com?callback=?", function (data) {
            var IP_Address = data.ip;

            $.ajax({
              url: 'http://url.com:3000/submitVote',
              dataType: 'jsonp',
              data: {
                pollName: poll.pollName,
                voterID: IP_Address,
                vote: selectedValue
              },
              success: callback("Vote successful")

            });
          });
        });
      }
    });
  })

你会怎么做

要使用点表示法,您需要在javascript中使用名为
Poll
的函数

function Poll()
{
    var self = this;
    //various things poll's do

    self.onSubmit = function(callback)
    {
        //Submit Code

        if (callback && typeof(callback) === "function") {  
              callback();  
       }  

    }
}

然后在某处创建一个新的
Poll
对象

var poll = new Poll();
然后您可以调用onSubmit并传递回调

poll.onSubmit(function() {
        console.log('hello world');
    });

假设您有一个poll函数,您会向其中添加一个接受一个参数的onSubmit函数。在里面,你会打电话的it@AndrewWalters我不知道该怎么做。我会在客户端创建一个poll对象并向其中添加各种方法吗?或者你建议使用直接向上的函数?谢谢你的回答如果我说不通的话,我很抱歉。我真的不明白有人问我什么。我怎样才能在投票中使用点符号?我想这就是我需要知道的。我会写一个答案的!写得很好,我现在明白了。谢谢,安德鲁。
poll.onSubmit(function() {
        console.log('hello world');
    });