5

我不是 jQuery 专家,我正在尝试将一些变量值从 C# 传递给我在 keyup 和 onclick 事件上调用的函数。到目前为止,我有这样的事情:

$('mydiv').bind('keyup click', function(event) {}

但我需要的是:

$('mydiv').bind('keyup click', function(event, UserId, ControlId) {}

,其中 UserId 和 ControlId 是我从查询字符串后面的代码中获取的一些 id。我也在使用 jQuery 1.6.4。

我该怎么做,最好不使用隐藏的输入字段?谢谢你。

4

6 回答 6

1

使用on代替bind

从 jQuery 1.7 开始,.on() 方法是将事件处理程序附加到文档的首选方法。

使用 razor 将值从服务器传递到客户端(如果您使用的是 asp.net mvc):

$('mydiv').on('keyup click', function(event, @UserId, @ControlId) {}

或者如果它的网络表单:

$('mydiv')
    .on('keyup click', function(event, <%= UserId %>, <%= ControllId %>) {}
于 2012-10-10T10:54:25.020 回答
0

我会使用数据属性:

$('mydiv').data({ userId: <%= UserId %>, ControllId: <%= ControllId %> })

然后您可以在点击事件中访问这些数据:

$('mydiv').on('click', function(event) {
  var userId = $(this).data('userId');
  var ControlId = $(this).data('ControlId');
});
于 2012-10-10T10:54:05.537 回答
0

在后面的代码中将变量声明为公共

public string userId="abc"; 

在客户端访问它

var uid='<%=userId %>';
$('mydiv').bind('keyup click', function(event, uid, ControlId) {}
于 2013-11-22T08:13:45.290 回答
0

js 文件无法直接访问 C# 对象,因此您需要执行以下操作。即使您想在视图文件中编写完整的 jQuery 代码,您仍然可以采用相同的方法。

因此,您可以在传递给 View 的某些模型中传递变量,一旦在模型中拥有这些变量,您就可以执行以下操作:

 <script type="text/javascript">
    var myList= @Html.Raw(Json.Encode(@Model.UsersList));      
</script>

所以现在你有了一个 json 对象,任何单独的 js 文件也可以在变量“myList”的帮助下在同一个视图文件中访问它。

于 2019-09-23T14:05:56.817 回答
-1

Javascript 范围不像其他语言中的范围,所以如果你写

var UserId = 5; 
var ControlId = 5;

$('mydiv').bind('keyup click', function(event) 
{
  alert( UserId );  
});

它会起作用的

查看http://jsfiddle.net/FgYTL/1/

于 2012-10-10T11:13:02.243 回答
-2

我的 mydiv 是类、id 还是 jQuery 变量?看起来你需要做

$('div.mydiv') or $('div#mydiv') 
于 2012-10-10T11:19:57.327 回答