jquery.balloon.jsを使用し,動的にshowBalloonとhideBalloonを設定したいと思っています.
showBalloonでは,以下のようにバルーン内に閉じるボタンを設定し,それをクリックすることでhideBalloonを呼び出すよう定義しています.

function f1(j_obj, text) { // j_objはjqueryオブジェクト
    var id = j_obj.attr('id');
    var btn = '<input type="button" value="閉じる" onclick="f2(' + id + ')"/>';
    j_obj.showBalloon({
        html : true,
        contents : '<div>' + text + btn + '</div>'
    });
}

function f2(obj) {
    $(obj).hideBalloon();
};

しかし,showBalloonは正常に動作しますが,hideBolloonが上手く動作せず,閉じるボタンを押してもバルーンが消えません.
jquery.balloon.jsは,作成したバルーン情報を.data('balloon')に格納しているようですが,
どうやらf1()内で格納されたdata属性がf2()内では消えてしまっているようです.
(f1内ではj_obj.data() = {'balloon'}となっていますが,f2内では$(obj).data() = {}となってしまいます.f1のj_objとf2の$(obj)が同一であることは確認しています.)

なぜf2ではdata属性が取得できないのでしょうか.data属性にスコープは無いと思うのですが…….また,閉じるボタンを押した際にhideBalloonするにはどうすればよいでしょうか.

よろしくお願いいたします.