2016-02-25 61 views
0

我想在我的Ruby on Rails應用程序中實現複製到剪貼板功能。在我的部分,我有這樣的代碼:Jquery Focus選擇整個頁面

<div class="share"/> 
    <button class='my_clip_button clipboard' data-clipboard-text='<%= request.base_url.chomp('/') + trailer_path(trailer) %>'title='Click me to copy to clipboard.'> 
     <%= image_tag('copy.png', :class=>"img-responsive") %> 
    </button> 
     <div class="reminder"> 
     <p>Copy link</p> 
     </div> 
     <input type="text" name="Element To Be Copied" class = "clipboardtext" 
     id="inputContainingTextToBeCopied" value='<%= request.base_url.chomp('/') + trailer_path(trailer) %>' 
     style="display:none; position: relative; left: -10000px;"/> 
    </div> 

在我的JavaScript幫手,我有:

$('.clipboard').click(function(){ 
    $(this).closest(".share").find(".clipboardtext").focus(); 
    document.execCommand('SelectAll'); 
    document.execCommand("Copy", false, null); 
    copyDiv.style.display = 'none'; 

}); 

往上走的樹,我不應該去父格,然後找到第一個元素與相應的類?我很困惑,爲什麼整個網頁被選中。使用ID更容易,因爲我可以簡單地使用getElementById,但我不確定如何爲類/多個元素執行此操作。先謝謝你。

回答

0

你試過:

$(this).siblings(".clipboardtext").focus(); 

或:

$(this).parent(".share").find(".clipboardtext").focus(); 
+0

剛剛嘗試了兩種,並且整個頁面仍處於選中狀態。 – user2442317

0

看起來你已經畸形的div標籤:

<div class="share"/> 

應該

<div class="share"> 

否則在測試它的工作。

+0

仍然複製整個頁面:(。 – user2442317

+0

)你不能關注隱藏的元素,如果你刪除了style =「display:none;」這將工作 – utxin

+0

https://jsfiddle.net/dhh2nrro/看到這個小提琴 – utxin