如何在Jquery中使用触发器传递参数数据和控件(此)

如何在Jquery中使用触发器传递参数数据和控件(此),jquery,jquery-selectors,Jquery,Jquery Selectors,我尝试对所有控件使用相同的验证函数。但我对jQuery了解不多,无法将事件处理程序传递给触发器。我想将textbox id传递给我的自定义函数。 我该怎么做 <script src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#txtFirstName").

我尝试对所有控件使用相同的验证函数。但我对jQuery了解不多,无法将事件处理程序传递给触发器。我想将textbox id传递给我的自定义函数。 我该怎么做

<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
    $("#txtFirstName").bind('focusout', function()
   {
   $(this).trigger("customblurfocus",[$(this).val(), $(this).val() + " Required !", "Ok !"]);
   }
  );

  $(this).bind('customblurfocus',function(defaultInputValue,ErrorMessage,ValidMessage)
     {alert($(this).val()); 
     if($(this).val()=="" || $(this).val()==defaultInputValue)
      {
      $(this).val(defaultInputValue);
      $(this).siblings("span[id*='error']").toggleClass("error_set").text(ErrorMessage).fadeOut(3000);  
      }
     else
      {
      $(this).siblings("span[id*='error']").toggleClass("error_ok").text(ValidMessage).show(1000);
      }
     }
   );
    });
</script>

$(文档).ready(函数(){
$(“#txtFirstName”).bind('focusout',function()
{
$(this).trigger(“customblurfocus”、[$(this.val(),$(this.val()+“Required!”,“Ok!”);
}
);
$(this).bind('customblurfocus',函数(defaultInputValue、ErrorMessage、ValidMessage)
{alert($(this.val());
if($(this.val()==“”| |$(this.val()==defaultInputValue)
{
$(this).val(defaultInputValue);
$(this).sides(“span[id*='error']”。).toggleClass(“error_set”).text(ErrorMessage).fadeOut(3000);
}
其他的
{
$(this).sides(“span[id*='error']”)。toggleClass(“error_ok”)。text(ValidMessage)。show(1000);
}
}
);
});

您只需在绑定事件处理程序的主体中调用自定义函数即可:

$("#foo").bind("click", function(){
  callMyFunction( arg0, arg1, arg2 );
});
例如


更新:我想我已经知道了您想要实现的目标,这应该是可行的(不需要自定义事件):

如果你有问题,就问:)


绑定事件处理程序的第一个参数是事件对象本身。请参见下面的示例:

以及:

事件对象始终作为第一个参数传递给事件处理程序,但是如果在
.trigger()
调用过程中指定了其他参数,这些参数也将传递给处理程序

所以你的应该是这样的:

function(event, defaultInputValue, ErrorMessage, ValidMessage)
但是如果你描述一下你实际上得到了什么样的错误,那就更好了


第二个问题:如果我看对了,第二个绑定不知何故没有上下文:

$(document).ready(function(){
     $("#txtFirstName").bind('focusout', function(){});

     $(this).bind('customblurfocus',function(defaultInputValue,ErrorMessage,ValidMessage)
     { //...
     });
});
要将自定义事件绑定到哪个元素?
$(这个)
应该是什么?在此状态下,即使将
事件
作为第一个参数添加到函数中,这也不会起作用。
请告诉我们更多关于您的HTML结构和/或您想要实现的内容

$('#foo').bind('custom', function(event, param1, param2) {
  alert(param1 + "\n" + param2);
});
$('#foo').trigger('custom', ['Custom', 'Event']);
function(event, defaultInputValue, ErrorMessage, ValidMessage)
$(document).ready(function(){
     $("#txtFirstName").bind('focusout', function(){});

     $(this).bind('customblurfocus',function(defaultInputValue,ErrorMessage,ValidMessage)
     { //...
     });
});