【问题标题】:JQuery Mobile: click events cannot be attached to button after show/hideJQuery Mobile:显示/隐藏后单击事件无法附加到按钮
【发布时间】:2012-03-08 11:30:20
【问题描述】:

我对 jquery mobile 有一个非常奇怪的问题:

我使用表格并隐藏行:

$('tr ...').hide();

在表格行内,定义了按钮,如:button1。

首先我调用 $('#button1').hide 然后调用 $('#button1').show 以使该行可见,但按钮已消失,因此我调用:

$('#button1').button();

现在最大的问题是,我不能再次附加任何点击事件,并且之前的事件已经消失了。

我尝试了以下策略来附加事件:

$("#button1").click(...); bzw. $("#button1").live('click', ...);

$(document).ready("#button1").click(function() {
  alert(1);
});

$(document).ready("#button1").live('click', function() {
  alert(1);
});

第一个和第二个变体都不起作用。最后两个变体正在工作,但我没有得到正确的发送者对象作为事件参数(即: $(this).attr('id') )。

您知道这个问题的解决方案吗,我非常感谢您的帮助。

提前致谢, 马丁

【问题讨论】:

    标签: jquery events button mobile


    【解决方案1】:

    不要在 jQuery Mobile 中使用 $(document).ready()!查看DOCS的解释!

    也许这会对你有所帮助

    $('#page_id_blahblah').live('pageshow',function(){
        //do things with button show hide etc..
        //then append event to button after show, or before, or when you want
        var some_variable = 'button1';
        $('#button1').click(function(){
           alert("Button pressed: " + some_variable);
        });
    });
    

    【讨论】:

      【解决方案2】:

      感谢您的回答。我发现了错误,这是我的代码中的错误。由于错误,我不仅隐藏了表格行,还隐藏了按钮。如果我只是隐藏 TR,那么点击事件仍然存在。对于引导程序,我目前使用$(document).live('pagebeforeshow', ...);,所以一切正常:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-06-14
        • 1970-01-01
        • 1970-01-01
        • 2016-01-20
        • 2013-01-18
        • 2020-05-21
        • 1970-01-01
        相关资源
        最近更新 更多