.blur()不适用于标签

时间:2015-02-17 06:42:49

标签: c# jquery asp.net

我想在标签模糊上调用[webmethod]。但我的问题是:

$('#clarity_lbl').on('blur', function () {
        alert("hi");
}); 

$('#clarity_lbl').blur(function () {
         alert("hi");
});

$('#clarity_lbl').bind('blur', function () {
        alert("hi");
});

无效。 #clarity_lbl是我的标签的ID。

1 个答案:

答案 0 :(得分:0)

正如Arun所提到的,当您尝试将处理程序绑定到页面时,您的问题可能是页面上尚未存在您要定位的元素。

要解决此问题,您可以使用event delegation。不是直接绑定到元素(因为它还没有存在),而是绑定到页面上存在的层次结构中的另一个元素,将侦听器委托给它。在委派中,您传入目标元素的idclass。因此,这个父元素会听取与您孩子中的选择器匹配的元素的点击,如果它听到了,则会调用您的函数。

您始终可以委托给$(document),但最佳做法是尽可能靠近动态添加的目标元素委托给元素。



$("#container").on("blur","#clarity_lbl", function(event, ui) {
    alert("hi");
  
});	

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="container">
  <input type="text" id="clarity_lbl" value="click then click away" size="100"/>
</div>
&#13;
&#13;
&#13;