2013-10-11 64 views
0

我有幾個包含動態控件的頁面。這意味着我永遠不知道我在頁面上擁有哪些類型或多少控件。我需要一個腳本,用於在單擊文本區域時選擇文本。我正在考慮下面的腳本會起作用,但它似乎沒有像預期的那樣起作用。從動態控件中選擇內容的腳本

$(function() { 
    $('input[type=textarea]').focus(function() { 
     inputValue = this.value; 
    }); 
}); 


<div style="display: table;"> 
    <div style="display: table-row"> 
     <div style="display: table-cell;"> 
      <span style="font-weight: bold">TextArea 1</span> 
     </div> 
    </div> 
    <div style="display: table-row"> 
     <div style="display: table-cell;"> 
      <textarea id="txtTextArea1" rows="3" cols="30"> 

回答

0

因爲你的事件綁定到不一定在DOM中存在的元素將無法工作。要做到這一點,你應該使用$ .on()來綁定它,並且只要元素出現在DOM中,它就會工作。見http://api.jquery.com/on/

對於你想做什麼:

$(function() { 
    $('.container-element').on('focus', 'textarea', function() { 
     var inputValue = $(this).val(); 
    }); 
}); 

請注意,將事件綁定到未來的元素,你必須提供一個選擇爲$。對一個參數()。這是假設你有以下結構:

<div class="container-element"> 
    <textarea name="some_texarea"></textarea> 
</div> 

還要注意的是textarea的是自己的標籤不是一個類型的輸入。

+0

應該是var inputValue = $(this).val(); – Ceres

+0

這似乎不工作,因爲我沒有使用div的類。我將html標記添加到了我的問題中。 – nsmanners

+0

謝謝穀神星,我糾正了,它應該是$(this).val(); – Jazzuzz

相關問題