run_once_for => 3, # kivi.run_once_for(<TARGET>, <ARGS>)
scroll_into_view => 1, # $(<TARGET>)[0].scrollIntoView()
+
+ set_cursor_position => 2, # kivi.set_cursor_position(<TARGET>, <ARGS>)
);
my %trim_target_for = map { ($_ => 1) } qw(insertAfter insertBefore appendTo prependTo);
// ## jQuery UI dialog plugin ##
- // Opening and closing and closing a popup
+ // Opening and closing a popup
else if (action[0] == 'dialog:open') kivi.popup_dialog(action[1]);
else if (action[0] == 'dialog:close') $(action[1]).dialog('close');
else if (action[0] == 'run') kivi.run(action[1], action.slice(2, action.length));
else if (action[0] == 'run_once_for') kivi.run_once_for(action[1], action[2], action[3]);
else if (action[0] == 'scroll_into_view') $(action[1])[0].scrollIntoView();
+ else if (action[0] == 'set_cursor_position') kivi.set_cursor_position(action[1], action[2]);
else console.log('Unknown action: ' + action[0]);
$input.parent().replaceWith($area);
$area.focus();
};
+
+ ns.set_cursor_position = function(selector, position) {
+ var $input = $(selector);
+ if (position === 'end')
+ position = $input.val().length;
+
+ $input.prop('selectionStart', position);
+ $input.prop('selectionEnd', position);
+ };
});
kivi = namespace('kivi');