[jQuery] Odd behaviour with the "one()" event handler

[jQuery] Odd behaviour with the "one()" event handler


I'm not sure if I'm misinterpreting how to use the "one()" event
handler properly, but when I tried to use it in the bit of code below,
I was unable to prevent the button from submitting the form (which it
was now inserted into). I tried "return false" as well as an
"event.preventDefault()", but clicking on the button still seemed to
submit the form.
The only way I could get it to prevent submitting the form was to use
the .mouseup() event handler rather than .one().
Why didn't "return false" or "event.preventDefault();" stop the form
from being submitted?
The code:
$('#modewc').parent().append('<br /><br /><button style="font-size:
10px;" id="remHwb">Remove Word Breaks</button>');
if(!$("a[@name='preview']")[0]){
    $('#remHwb').attr('disabled','disabled');
}
else{
    $('#remHwb').one("mouseup", function(e){
e.preventDefault();
        var sdf = $.trim($('.bodytext:last>p').html()).split("\xAD\x20")
        $('#body').val('');
        for(var p=0;p<sdf.length;p++){
            if( (p == sdf.length-1) && ((sdf[p].length<34) || (sdf[p].indexOf('
')> 0)) ){
                $('#body').val($('#body').val()+sdf[p].replace(RegExp("
",
"gim"), "\n"));
                break;
            }
            else{
                sdf[p] = sdf[p].slice(0,-2)+'[**]'+sdf[p].slice(-1);
            }
            sdf[p] = sdf[p].replace(RegExp("
", "gim"), "\n");
            $('#body').val($('#body').val()+sdf[p]);
        }
        $(this).attr('disabled','disabled');
        return false;
    });
}