[英]Pass code behind variable value to jQuery function
我不是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。
如何做到这一点,最好不要使用隐藏的输入字段? 谢谢。
我会使用数据属性:
$('mydiv').data({ userId: <%= UserId %>, ControllId: <%= ControllId %> })
那么您可以在点击事件中访问这些数据:
$('mydiv').on('click', function(event) {
var userId = $(this).data('userId');
var ControlId = $(this).data('ControlId');
});
使用on
代替bind
从jQuery 1.7开始,.on()方法是将事件处理程序附加到文档的首选方法。
使用剃刀将值从服务器传递到客户端(如果您使用asp.net mvc):
$('mydiv').on('keyup click', function(event, @UserId, @ControlId) {}
或其网页表单:
$('mydiv')
.on('keyup click', function(event, <%= UserId %>, <%= ControllId %>) {}
在后面的代码中将变量声明为public
public string userId="abc";
在客户端访问
var uid='<%=userId %>';
$('mydiv').bind('keyup click', function(event, uid, ControlId) {}
js文件无法直接访问C#对象,因此您需要执行以下操作。 即使您想在视图文件中编写完整的jQuery代码,仍然可以采用相同的方法。
因此,您可以在传递给View的某些Model中传递变量,一旦在Model中拥有这些变量,就可以执行以下操作:
<script type="text/javascript">
var myList= @Html.Raw(Json.Encode(@Model.UsersList));
</script>
因此,现在您有了一个json对象,借助变量“ myList”,任何一个单独的js文件都可以在同一视图文件中访问该对象。
JavaScript作用域与其他语言的作用域不同,因此如果您编写
var UserId = 5;
var ControlId = 5;
$('mydiv').bind('keyup click', function(event)
{
alert( UserId );
});
它会工作
mydiv是类,id还是jQuery变量? 看起来你需要做
$('div.mydiv') or $('div#mydiv')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.