我不是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。
我该怎么做,最好不使用隐藏的输入字段? 谢谢。
答案 0 :(得分:0)
我会使用数据属性:
$('mydiv').data({ userId: <%= UserId %>, ControllId: <%= ControllId %> })
然后您可以在点击事件中访问这些数据:
$('mydiv').on('click', function(event) {
var userId = $(this).data('userId');
var ControlId = $(this).data('ControlId');
});
答案 1 :(得分:0)
使用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 %>) {}
答案 2 :(得分:0)
在后面的代码中将变量声明为public
public string userId="abc";
在客户端访问它
var uid='<%=userId %>';
$('mydiv').bind('keyup click', function(event, uid, ControlId) {}
答案 3 :(得分:0)
js文件无法直接访问C#对象,因此您需要执行以下操作。 即使您想在视图文件中编写完整的jQuery代码,仍然可以采用相同的方法。
因此,您可以在传递给View的某些Model中传递变量,一旦在Model中拥有这些变量,就可以执行以下操作:
<script type="text/javascript">
var myList= @Html.Raw(Json.Encode(@Model.UsersList));
</script>
因此,现在您有了一个json对象,借助变量“ myList”,任何一个单独的js文件都可以在同一视图文件中对其进行访问。
答案 4 :(得分:-1)
Javascript范围与其他语言的范围不同 所以,如果你写
var UserId = 5;
var ControlId = 5;
$('mydiv').bind('keyup click', function(event)
{
alert( UserId );
});
它会起作用
答案 5 :(得分:-2)
我的mydiv是一个类,id还是一个jQuery变量?看起来你需要做
$('div.mydiv') or $('div#mydiv')