Javascript 使用EventArgs传递参数
我想知道是否可以将参数传递给从AJAX扩展器调用的javascript事件(在本例中为自动完成),同时保留正在传递的EventArgs。下面是我的意思的一个简短示例:Javascript 使用EventArgs传递参数,javascript,asp.net,jquery,Javascript,Asp.net,Jquery,我想知道是否可以将参数传递给从AJAX扩展器调用的javascript事件(在本例中为自动完成),同时保留正在传递的EventArgs。下面是我的意思的一个简短示例: <... OnClientItemSelected="DoThis(somevar, eventargs);" /> 这就是我的想法。有人知道怎么做吗?如果可能的话?你问什么还不清楚,但是……我还是要试试看。听起来您实际上是想增加传递给事件处理程序的事件数据。有很多方法可以做到这一点: 如果您使用的是jQuery:
<... OnClientItemSelected="DoThis(somevar, eventargs);" />
这就是我的想法。有人知道怎么做吗?如果可能的话?你问什么还不清楚,但是……我还是要试试看。听起来您实际上是想增加传递给事件处理程序的事件数据。有很多方法可以做到这一点: 如果您使用的是jQuery: 首先,可以使用2个或3个参数调用
bind()
方法:
bind(eventName,eventHandler)
bind(事件名称、数据、事件处理程序)
bind()
,则第二个参数data
是传递给事件处理程序的任意对象,作为传递给事件处理程序的事件
实例的.data
属性
其次,事件处理程序是一个闭包,其词法范围包括创建闭包时在范围内的变量。例如,在jQuery中将事件处理程序绑定到事件的通常方式如下:
$(function(){
var pi = 3.1415926 ;
var phoneticAlphbet = { a = "alpha" , b = "bravo" , c = "charlie" ,
...
x = "x-ray" , y = "yankee" , z = "zulu"
} ;
$('input:radio[name=buttonset1]').click(function(){
// at this point, the variables pi and phonetic alphabet are in-scope,
// as well as any other globals you've created
// do something here
}) ;
}) ;
这是将数据传递给事件处理程序的第二种方法
第三种方法是挂起DOM树元素的数据。jQuery方便地提供了执行此操作的data()
方法:
在包装集上设置一个值.data(名称、值)
从包装集检索值.data(name)
$('input,select').each(function(){
var item = $(this) ;
item.data( 'original-value' , item.val() ) ;
}) ;
设置后,可以检索该值:
$('input#password').change(function(){
var item = $(this) ;
var oldValue = item.data('original-value') ;
var newValue = item.val() ;
if ( oldValue == newValue )
{
alert('the new password must be different than the old password!') ;
}
}) ;
非常感谢。这就是教训:)
$('input#password').change(function(){
var item = $(this) ;
var oldValue = item.data('original-value') ;
var newValue = item.val() ;
if ( oldValue == newValue )
{
alert('the new password must be different than the old password!') ;
}
}) ;