0

我的页面中有以下标签

时间轴并使用了以下 jquery 代码

$(".timeline").click(function(){createtip(eventdata);});

function createtip(eventdata){ 

    $('<div class="tip"></div>').appendTo('body').html(html_content);
        positionTooltip(eventdata);        
    };

    function positiontip(eventdata){
        var PosX = eventdata.pageX;
        var PosY = eventdata.pageY;
        $('div.tip').css({'position': 'absolute', 'top': PosY, 'left': PosX});

并且 html_content 是:

<input type="button" class="button" name="submit_tooltip_form" value="close"/>

附加 div 标签后,我试图通过单击 div 标签内的按钮关闭此 div 标签。我不知道该怎么做,因为我是 jquery 的新手。

4

4 回答 4

0

试试这个,

function createtip(eventdata){ 
        $('body').append('<div class="tip">'+html_content+'</div>');
        positionTooltip(eventdata);        
    };
于 2013-07-16T06:06:11.417 回答
0

尝试使用jquery .on()

$(".timeline").on('click',function(){
    createtip(eventdata);
});
于 2013-07-16T06:08:26.943 回答
0

试试这个,

$('input [name="submit_tooltip_form"]').live("click", function(){
    $(".tip").hide();
});
于 2013-07-16T06:13:30.353 回答
0

小提琴

当您向文档添加新内容时,将在没有任何事件处理程序(如click()或)的情况下添加它on( 'click' )。这意味着您必须做以下两件事之一:

在添加新对象后将事件绑定到新对象,如下所示:

$(newElement).on('click',  function () {
    $(this).closest('.tip').hide();
   // other stuff
});

或者,您可以将点击处理委托给父对象,该对象将自动处理新添加元素的事件,如下所示:

$('body').on( 'click', '.button', function () {
    $(this).closest('.tip').hide();
});

如果使用第二种方法,则无需担心将事件绑定到新对象。

注意:您可能想删除提示而不是隐藏它们?.remove()在这种情况下替换.hide()上面的例子

于 2013-07-16T06:21:35.520 回答