我想在每次点击输入元素时切换div的可见性。我有以下HTML:
<input type="text" ng-click="show = !show"/>
<div ng-show="show">Im visible</div>
在移动Safari(iPad)中,输入在显示div时失去焦点。因此,无法在输入中输入文本。有时键盘会弹出一半,但会再次下降。
我试图通过每次div可见时调用焦点功能再次聚焦输入。以下是指令代码(简化):
app.directive('myDir', function(){
return{
link: function(scope, element, attr){
scope.focus = function(){
setTimeout(function() {
element.find('input').eq(0)[0].focus();
}, 500);
}
},
template: '<input type="text" ng-click="toggle()"/>' +
'<div ng-show="show">Im visible</div>',
controller: function($scope){
$scope.toggle = function(){
$scope.show = !$scope.show;
if($scope.show) $scope.focus();
};
}
};
};
这会把重点放在输入上,但是键盘没有出现,所以它仍然没用。
在Android设备和台式机上运行良好。
有谁知道如何解决/解决这个问题?