JQuery Mobile:显示/隐藏后点击事件无法附加到按钮

时间:2012-02-17 02:01:25

标签: jquery events button mobile

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

我使用表并隐藏行:

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

在表格行中,有定义的按钮,例如:button1。

首先我打电话给$('#button1')。隐藏然后$('#button1')。显示使行可见,但按钮不在,因此我打电话:

$('#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'))。

你知道这个问题的解决方案,我真的很感激一些帮助。

提前致谢, 马丁

2 个答案:

答案 0 :(得分:0)

不要在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);
    });
});

答案 1 :(得分:0)

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