2011-09-05 81 views
0
<table border="2" class="table"> 
    <tr> <td class="clicked">aaa </td> <td class="clicked">bbb </td> </tr> 
    <tr> <td class="clicked">ccc </td> <td class="clicked">ddd </td> </tr> 
</table> 

<table border="2" class="tablehide"> 
    <tr> <td> 111</td> </tr> 
</table> 



.table td { 
    width: 50px; 
    height: 50px 
} 

.tablehide td { 
    width: 25px; 
    height: 50px; 
    display:none; 
} 


$(".clicked").live('click', function() { 
    $(this).load($('.tablehide')) 
    }); 

活生生的例子:http://jsfiddle.net/5neff/2/負載表 - jQuery的

我想:如果我點擊例如BBB的則不用BBB負載

<table border="2" class="tablehide"> 
    <tr> <td> 111</td> </tr> 
    <tr> <td> 222</td> </tr> 
</table> 
+0

嘗試使用查詢各 –

回答

3

更改您的jQuery來如下:

$(".clicked").live('click', function() { 
    $(this).html($('.tablehide')); 
    $('.tablehide td').show(); 
}); 

直播鏈接:http://jsfiddle.net/5neff/3/

或者你可以克隆它來複制,通過使用.clone()

$(".clicked").live('click', function() { 
    $(this).html($('.tablehide:last').clone()); 
    $('.tablehide:not(:last) td').show(); 
}); 

直播鏈接:http://jsfiddle.net/5neff/4/

什麼基本的情況是,目前單擊項目的HTML設置爲隱藏表格,然後使表格中的html可見。

UPDATE [保持原有數據]

$(".clicked").live('click', function() { 
    $(".clicked").find('div:first').show(); 
    $(this).wrapInner('<div class="hide">'); 
    $(this).find('div:first').hide() 
    $(this).prepend($('.tablehide')); 
    $('.tablehide td').show(); 
}); 

直播鏈接:http://jsfiddle.net/5neff/7/

UPDATE [表點擊隱藏,並保持原有數據]

$(".clicked").live('click', function() { 
    $(".clicked .tablehide").remove(); 
    $(".clicked").find('div:first').show(); 
    $(this).wrapInner('<div class="hide">'); 
    $(this).find('div:first').hide() 
    $(this).prepend($('.tablehide:last').clone()); 
    $('.clicked .tablehide td').show(); 
}); 


$(".tablehide").live('mouseup', function() { 
    $(".clicked .tablehide").remove(); 
    $(".clicked div.hide").show(); 
}); 

直播鏈接: http://jsfiddle.net/5neff/8/

+0

感謝,怎樣才能讓我是否取消勾選那麼讓我看看老秀? –

+0

如果我選擇AAA這很好,但如果我選擇BBB,那麼在AAA仍然是新表 –

+0

好吧會做出更改,讓你知道一旦更新。 –

1

使用這樣的事情,而不是:

$(".clicked").live('click', function() { 
    $(this).html($('.tablehide').html()) 
}); 

load用於從服務器加載數據,而不是處理當前加載的文件。

這是上述代碼的working example

1

改變你的JS到

$(".clicked").live('click',function(){ 
    $(this).html($('.tablehide').html()); 
}); 

.load()功能是加載數據(JSON等..爲Ajax)或綁定一個事件處理程序,而不是從一個元素中獲取HTML。

1

或者更好的是(所有的最短版):

$(".clicked").live('click', function() { 
    $(this).html($('.tablehide').show().html()); 
}); 
1

檢查更新的解決方案

http://jsfiddle.net/5neff/6/

$('.clicked').each(function() { 
    $(this).click(function() { 
     htmlVal = $('.tablehide')[0].outerHTML; 
     $(this).html(htmlVal); 
     $(this).find(".tablehide").css("display","block"); 
     $(this).find(".tablehide td").css("display","block"); 
    }); 
    });