Saya sedang mengerjakan projek hari ini dan menghadapi masalah yang tidak pernah saya hadapi sebelum ini, jadi saya mencatatnya.
1. Penjelasan kaedah pencetus
Ini adalah penjelasan rasmi:
Penggunaan:
.trigger( eventType [, extraParameters] )
EventType termasuk acara terbina dalam javascript, acara tambah jQuery dan acara tersuai. Contohnya:
$('#foo').bind('click', function() { alert($(this).text()); }); $('#foo').trigger('click'); $('#foo').bind('custom', function(event, param1, param2) { alert(param1 + "\n" + param2); }); $('#foo').trigger('custom', ['Custom', 'Event']);
sangat berkuasa dan sering digunakan semasa permulaan halaman.
2. Pencetus bertemu tuding
var $search=$('#header .search'); $search.find('li').hover(function() { alert(1); },function() { alert(2); }); $search.find('li').eq(0).trigger('hover');
Tuding tidak boleh dicetuskan. Tetapi:
var $search=$('#header .search'); $search.find('li').click(function() { alert(1); },function() { alert(2); }); $search.find('li').eq(0).trigger('click');
Mencetuskan klik adalah perkara biasa!
Penyelesaian:
var $search=$('#header .search'); $search.find('li').hover(function() { alert(1); },function() { alert(2); }); $search.find('li').eq(0).trigger('mouseenter');//hover修改为mouseenter/mouseleave/mouseover/mouseout
Situasi yang sama wujud dengan jQuery.live(), tetapi live tidak disyorkan untuk digunakan dalam versi selepas 1.7 Use on().
Di atas adalah keseluruhan kandungan artikel ini, saya harap anda semua menyukainya.