簡體   English   中英

將變量值后面的代碼傳遞給jQuery函數

[英]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 );  
});

它會工作

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

mydiv是類,id還是jQuery變量? 看起來你需要做

$('div.mydiv') or $('div#mydiv') 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM