angular.js - angularjs 显示textarea后如何自动获取焦点
大家讲道理
大家讲道理 2017-05-15 17:06:42
0
1
599
<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>

由ng-repeat生成了多个这样的结构,textarea一开始隐藏,点击lc-hint,使textarea出现,如何自动获取焦点。

官方文档里的setfocus指令好像不行。求助

大家讲道理
大家讲道理

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

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