trigger事件模拟用户行为
事件模拟trigger
在操作DOM元素中,大多数事件都是用户必须操作才会触发事件,但有时候,需要模拟用户的操作,来实现一些需求.
需求:页面初始化时触发搜索事件并获取input控件值,并打印输出(效果图如下)

<注:class、id按规则,绑定事件DOM元素均以"T-*"开头>
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>simulate-trigger</title> 5 <script src="../../scripts/jquery.js" type="text/javascript"></script> 6 <script type="text/javascript"> 7 $(function(){ 8 var $container=$('#T-container'); 9 $container.find('.T-search').on('click',function(){ 10 function getVal($tab,name){//获取控件值,$tab对象,name控件名称 11 return $tab.find("[name="+name+"]").val(); 12 } 13 var $that=$(this), 14 $searchArea=$that.closest('.T-search-area'), 15 name = getVal($searchArea,"name"), 16 touristName = getVal($searchArea,"touristName"); 17 $searchArea.append("<p>"+ name +"-"+ touristName +"</p>"); 18 }); 19 //模拟click事件 20 $container.find('.T-search').trigger('click'); 21 }) 22 </script> 23 </head> 24 <body> 25 <div id="T-container"> 26 <div class="T-search-area"> 27 <label>线路产品</label> 28 <input type="text" name="name" value="九寨沟黄龙溪三日游"/> 29 <label>游客</label> 30 <input type="text" name="touristName" value="HelloKitty"/> 31 <input type="button" value="搜索" class="T-search" /> 32 </div> 33 </div> 34 </body> 35 </html>
新添加于 2017-05-21 14:05:32 trigger虽模拟用户行为,但当被操作的元素是超链接标签a时;不会触发href页面跳转行为;
解决方法是超链接标签a添加子级标签;为子级标签绑定trigger事件;就可以触发a标签href行为了
1 <a href="http://www.cnblogs.com/zjf-1992/" id="myBlog">My Blog</a> 2 <script type="text/javascript"> 3 $(function(){ 4 var $myBlog = $("#myBlog"), 5 text = $myBlog.text(); 6 $myBlog.html('<span class="myBlogChild">'+ text +'</span>'); 7 $myBlog.on("click", '.myBlogChild', function(event){ 8 console.log("init....."); 9 }) 10 //trigger 11 $myBlog.find(".myBlogChild").trigger("click"); 12 }); 13 </script>

 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号