- var list = this;
- $("[class^=add:" + list.id + ":]", el || null)
- .filter('form').submit( function() { return list.wpList.add(this); } ).end()
- .not('form').click( function() { return list.wpList.add(this); } ).each( function() {
- var addEl = this;
- var c = wpList.parseClass(this,'add')[2] || addEl.id;
- if ( !c ) { return; }
- var forms = []; var ins = []; // this is all really inefficient
- $('#' + c + ' :input').focus( function() { currentFormEl = this; } ).blur( function() { currentFormEl = false; } ).each( function() {
- ins.push(this);
- var f = $(this).parents('form:first').get(0);
- if ( $.inArray(f,forms) < 0 ) { forms.push(f); }
- } );
- $(forms).submit( function() {
- if ( 0 <= $.inArray(currentFormEl,ins) ) {
- $(addEl).trigger( 'click' );
- $(currentFormEl).focus();
- return false;
- }
- } );
- } );
- $("[class^=delete:" + list.id + ":]", el || null).click( function() { return list.wpList.del(this); } );
- $("[class^=dim:" + list.id + ":]", el || null).click( function() { return list.wpList.dim(this); } );
+ var list = this,
+ $el = $(el || document);
+
+ $el.delegate( 'form[data-wp-lists^="add:' + list.id + ':"]', 'submit', function(){
+ return list.wpList.add(this);
+ });
+
+ $el.delegate( 'a[data-wp-lists^="add:' + list.id + ':"], input[data-wp-lists^="add:' + list.id + ':"]', 'click', function(){
+ return list.wpList.add(this);
+ });
+
+ $el.delegate( '[data-wp-lists^="delete:' + list.id + ':"]', 'click', function(){
+ return list.wpList.del(this);
+ });
+
+ $el.delegate( '[data-wp-lists^="dim:' + list.id + ':"]', 'click', function(){
+ return list.wpList.dim(this);
+ });