JavaScript调用传递变量参数的相关问题及解决办法_javascript技巧

举例

有一个js方法,接收参数:

复制代码 代码如下:

function f1(myValue){ alert(myValue); }

有一个变量:

复制代码 代码如下:

var passValue="Hello World";

在调用这个方法的时候(我是出现在Ajax提交的时候):

@Ajax.ActionLink("文本","控制器",new{参数},new AjaxOptions(){ HttpMethod="post",OnSuccess="f1(PassValue)" })

这里注意最后的OnSuccess,如果直接把变量丢进去,会把变量认为是一个字符串

如果改成OnSuccess="f1("+PassValue+")"也不行

搜了一下是需要转义字符

OnSuccess="f1('"+PassValue+"')"

这样就没问题了

不过上面调用Ajax的时候没注意,这里只是为了给异步调用方法f1()传参数

所以就不用@Ajax了 改成普通A标签就可以了 不然会调用两次控制器

ps:js将方法作为参数调用

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <title>js调用</title>
  <script src="cssjs/jquery.js" type="text/javascript"></script>
  <script type="text/javascript">
    $().ready(function () {
      $.dialog = function (settings) {
        if ($.isFunction(settings.okCallback)) {
          if (settings.height == null) {
            if (settings.okCallback.apply() != false) {
              alert("1");
            }
          } else {

            if (settings.okCallback.call(this, settings.height) != false) {
              alert("2");
            }

            /*
            if (settings.okCallback.apply(this, arguments) != false) {
              alert("2");
            }
            */
          }
        }
      }
    });
  </script>
  <script type="text/javascript">
    $(function () {
      $.dialog({
        okCallback: print,
        height: {data:"你好"}
      });
    });
  function print(ee1) {
    alert("print(ee1)");

    alert(ee1.data);

    /*
    alert(ee1.height.data);
    */
  /*
  function print(a, b, c, d) {
  alert(a + b + c + d);
  }
  function example(a, b, c, d) {
  //用call方式借用print,参数显式打散传递
  print.call(this, a, b, c, d);
  //用apply方式借用print, 参数作为一个数组传递,
  //这里直接用JavaScript方法内本身有的arguments数组
  print.apply(this, arguments);
  //或者封装成数组
  print.apply(this, [a, b, c, d]);
  }
  //下面将显示"背光脚本"
  example("背", "光", "脚", "本");
  */
  </script>
</head>
<body>
</body>
</html>

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索js调用传递参数
js参数
javascript调用变量、javascript 参数传递、javascript 引用传递、javascript多参数传递、javascript 传递对象,以便于您获取更多的相关知识。

时间: 2024-12-01 14:16:26

JavaScript调用传递变量参数的相关问题及解决办法_javascript技巧的相关文章

Javascript 获取链接(url)参数的方法[正则与截取字符串]_javascript技巧

当然,我们也可以用正则直接匹配,文章中也给出了一个正则的例子. 分解链接的方式: 复制代码 代码如下: <script type="text/javascript"> <!-- // 说明:Javascript 获取链接(url)参数的方法 function getQueryString(name) { // 如果链接没有参数,或者链接中不存在我们要获取的参数,直接返回空 if(location.href.indexOf("?")==-1 || l

javascript 尚未实现错误解决办法_javascript技巧

在firebug中也没有看到任何错误提示.打开IE就遇到该死的"尚未实现错误",根据IE中提示的位置找过去也没有发现任何错误,看来IE的报错定位也不太准确.万般无奈之下,google搜索,终于找到了错误所在的地方.原来错误在于window.onload= myFunc(var1,var2);IE的window.onload函数中不支持参数调用,虽然函数会照样执行,但是却会出现报错,影响后续脚本的继续执行,下面是两种简单而有用的解决办法: 再写一个函数,譬如function loadFu

javascript中的变量是传值还是传址的?_javascript技巧

这个标题念起来有点拗口,但却是理解数据结构的关键.标题中的4个术语,对应的英文分别是:shallow copy(注意,不是shadow copy).deep copy.pass by value.pass by reference(或pass by address).传址和传引用是一回事. 一门编程语言的核心是数据结构,粗略来讲,可以把数据结构分成不可变类型(immutable)和可变类型(mutable).为什么这么分呢?这涉及到内存分配问题.对于不可变类型,只要分配有限的内存空间即可,而对于

Javascript中判断变量是数组还是对象(array还是object)_javascript技巧

怎样判断一个JavaScript变量是array还是obiect? 答案: 1.如果你只是用typeof来检查该变量,不论是array还是object,都将返回'objec'. 此问题的一个可行的答案是是检查该变量是不是object,并且检查该变量是否有数字长度(当为空array时长度也可能为0). 然而,参数对象[arguments object](传给制定函数的所有参数),也可能会适用于上述方法,技术上来说,参数对象并不是一个array. 此外,当一个对象有a.length属性的时候,这个方

js 定时器setTimeout无法调用局部变量的解决办法_javascript技巧

javascript中定时器setTimeout的用法一般如下,调用beginrotate之后就进入定时执行rotateloop的一个过程,如下代码: 复制代码 代码如下: var angle = 0; function rotateloop() { if (angle < 360) { angle++; //use angle //...... setTimeout("rotateloop()", 100); } } function beginrotate() { //do

关于Bootstrap弹出框无法调用问题的解决办法_javascript技巧

问题描述 写项目中使用到了前端框架bootstrap,提供的功能很强大! bootstrap学习 然而在用bootstrap提供的弹出框组件时,弹出框怎么也弹不出! 按理说应该这样:   官方给出的样例是这样写的: <!DOCTYPE html> <html> <head> <title>Bootstrap 实例 - 弹出框(Popover)插件</title> <link href="http://libs.baidu.com/

JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法_javascript技巧

今天在学习js中的数组时,遇到的输出一个数组中最大.最小值以及它们的下表,以下是自己的解决方法! <script type="text/javascript"> var arr = [14, 14, 53, 14, 14, 53, 67, 67]; var max = arr[0],min = arr[0]; var maxIndex = []; maxIndex[0] = 0; var minIndex = []; minIndex[0] = 0; var j = 1,

JavaScript页面刷新与弹出窗口问题的解决方法_javascript技巧

一.无提示刷新网页 大家有没有发现,有些网页,刷新的时候,会弹出一个提示窗口,点"确定"才会刷新.而有的页面不会提示,不弹出提示窗口,直接就刷新了. 如果页面没有form,则不会弹出提示窗口. 如果页面有form表单, a)< form method="post" ...> 会弹出提示窗口 b)< form method="get" ...> 不会弹出 二.javascript刷新页面的方法 window.location

javascript onmouseout 解决办法_javascript技巧

onmouseout 发现它的触发太敏感,当经过层内文字链时,即触发onmousetout事件,功能不能正常显示,经过一番搜索,整理出来,供大家参考. 1. 复制代码 代码如下: <script type="text/javascript"> function test(obj, e) { if (e.currentTarget) { if (e.relatedTarget != obj) { if (obj != e.relatedTarget.parentNode) {