jquery_basic(1)

本文详细介绍了jQuery中的事件处理方法,包括bind(), unbind(), one(), trigger()等的使用技巧及注意事项,并对比了不同方法间的差异,如bind()与hover()的区别,以及实时事件的处理方式。


jquery处理事件

   可一次对多个选中对象注册程序

   

bind()  可一次对多个选中对象注册程序

1.   $(' p ').click( f )   ===    $(' p ').bind ( ' click ' , f ) ;      


 2 .  $(' p ').bind ( ' click ' , data ,  f ) ;       data   在调用处理程序前,将指定的值设置为event对象的data属性


  3.  $(' a ').bind ( ' mouseenter  mouseleave  ' ,  f )     ======;    $(' a '). hover( f )       (' a '). unbind ( ' mouseenter  mouseleave  '  )

 

4.    $(' a ').bind ( ' mouseover.myMod  ' ,  f )                               (' a '). unbind ( ' mouseenter .myMod  '  )


5.   $(' a ').bind ( {  mouseenter : f ,   mouseleave   :  g } )     ======;    $(' a '). hover( f , g  )


one()  只会触发一次


unbind()


          $(' a '). unbind ( ' click  ' , myHandle  ) ;

          $(' a '). unbind ( {  mouseover : handle,   mouseout : mouseoutHandle   }  ) ;

若传递event对象给unbind(ev)   ===>   unbind(ev.type   ev.handle)


tragger()

triggerHandle()  ====>首先调用event对象的preventDefault()和cancelBubble()  不会冒泡 不会执行相关联的默认操作


$(document).ready()却不需要载入得这么“完全”。

$(document).ready()是在DOM结构载入完后执行的,

而 window.onload是得在所有文件都加载完后执行的,

注意区别,一个是DOM加载完,一个是所有文件加载完。

因此,ready肯定在onload 之前发生,页面加载大或者多的图片而使onload执行延后,使用jquery的ready可缓解此问题。

   


实时事件

    delegate()     undelegate()   live( )  die(  )

$(document).delegate( " a " ," mouseover " , handler ) 通常在$(document)调用.

$(' a ').live( " mouseover " , handler ) 通常绑定在document上





### 解决方案 在使用 jQuery 的 `autocomplete` 功能时,如果出现 `Uncaught TypeError: jQuery autocomplete is not a function` 错误,通常是因为以下原因之一导致的: 1. **插件未正确加载**:确保页面中已经正确加载了 `jquery.ui.autocomplete.js` 文件以及相关的 CSS 文件。如果没有加载这些文件,`autocomplete` 方法将不可用[^1]。 2. **版本冲突**:如果页面中同时加载了多个版本的 jQueryjQuery UI,可能会导致方法冲突或覆盖。需要检查并移除多余的版本[^4]。 3. **初始化问题**:确保在调用 `autocomplete` 方法之前,目标元素已经存在于 DOM 中,并且 jQueryjQuery UI 已经完全加载[^3]。 #### 示例代码 以下是一个完整的示例,展示如何正确加载和初始化 `autocomplete` 功能: ```javascript <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>jQuery Autocomplete Example</title> <!-- 引入 jQuery --> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <!-- 引入 jQuery UI --> <script src="https://code.jquery.com/ui/1.13.2/jquery-ui.min.js"></script> <link rel="stylesheet" href="https://code.jquery.com/ui/1.13.2/themes/base/jquery-ui.css"> </head> <body> <input id="autocomplete" placeholder="Type something..."> <script> $(function() { var availableTags = [ "ActionScript", "AppleScript", "Asp", "BASIC", "C", "C++", "Clojure", "COBOL", "ColdFusion", "Erlang", "Fortran", "Groovy", "Haskell", "Java", "JavaScript", "Lisp", "Perl", "PHP", "Python", "Ruby", "Scala", "Scheme" ]; $("#autocomplete").autocomplete({ source: availableTags }); }); </script> </body> </html> ``` #### 注意事项 - 确保 `jquery.ui.autocomplete.js` 和相关 CSS 文件的路径正确。 - 如果页面中存在其他 jQuery 插件,检查是否存在命名冲突。例如,某些插件可能也定义了名为 `autocomplete` 的方法[^4]。 - 如果仍然出现问题,可以通过浏览器开发者工具(如 Chrome DevTools)检查网络请求,确认所有必要的脚本文件均已成功加载。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值