angular.js - Bagaimana untuk mendapatkan fokus secara automatik selepas memaparkan textarea dalam angularjs
大家讲道理
大家讲道理 2017-05-15 17:06:42
0
1
629
<p ng-repeat="x in inputContent track by $index">
    <p ng-if="x.hint" ng-click="toEdit({{$index}})" class="lc-hint">{{x.placeholder}}</p>
    <textarea ng-if="!x.readable" ng-model="x.value"></textarea>
</p>

Berbilang struktur sedemikian dijana oleh ng-repeat Area teks disembunyikan pada mulanya Klik lc-hint untuk membuat kawasan teks muncul secara automatik.

Arahan setfocus dalam dokumentasi rasmi nampaknya tidak berfungsi. Bantu

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

membalas semua(1)
大家讲道理

Ada masalah dengan kod anda:

ng-click="toEdit({{$index}})"

hendaklah ditulis sebagai

ng-click="toEdit($index)"

Kenapa tidak gunakan yang asli dan tambahkan id textarea ke abc;

document.getElementById("abc").focus();
Jika anda memasukkan dalam konsol, sebaiknya tambahkan kelewatan. Fokus textarea hanya boleh dicetuskan apabila halaman semasa berada dalam keadaan fokus. Klik mana-mana sahaja pada halaman selepas menaip untuk mencetuskan:

setTimeout(function(){document.getElementById("abc").focus();},1000);
Fokus set yang anda hadapi tidak berkuat kuasa, mungkin kerana halaman semasa tidak berada dalam fokus.

Letakkannya ke dalam persekitaran kod anda, tambah textarea dengan id, awalan yang saya tulis ialah suibianla_{whatever}:

<textarea id="suibianla_{{ $index }}" ng-if="!x.readable" ng-model="x.value"></textarea>
$scope.toEdit = function(index){
    //你的业务代码
    inputContent[index].readable = true;    //我猜你是这样写的,在这里后边加一句
    document.getElementById("suibianla_" + index).focus();
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan