`

JS实现trigger click调用

 
阅读更多

 

转载:http://www.nowamagic.net/librarys/veda/detail/1698

实现模拟trigger click方法,实现方式判断浏览器,判断nodeName

依据是Safari/Chrome不支持非input/button元素的click方法。

function triggerClick( el ) {
	    var nodeName = el.nodeName,
	        safari_chrome = /webkit/.test(navigator.userAgent.toLowerCase());
	    if(safari_chrome && (nodeName != 'INPUT' || nodeName != 'BUTTON')) {
	        try{
	            var evt = document.createEvent('Event');
	            evt.initEvent('click',true,true);
	            el.dispatchEvent(evt);
	        }catch(e){alert(e)};
	    }else{
	        el.click();
	    }
	}

 或者直接判断元素是否具有click方法即可

Safari/Chrome中非input/button元素没有click方法,返回undefined

unction triggerClick( el ) {
	    if(el.click) {
	        el.click();
	    }else{
	        try{
	            var evt = document.createEvent('Event');
	            evt.initEvent('click',true,true);
	            el.dispatchEvent(evt);
	        }catch(e){alert(e)};       
	    }
	}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics