[英]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.