我有 eonasdan datetimepicker的文字输入。有一个 bootstrap 工具提示。我想在datetimpicker处于活动状态时隐藏工具提示。
当datetime选择器处于活动状态时,有css类(.bootstrap-datetimepicker-widget)。我试图获得具有该css类的项目数。通过firebug进行调试时,我也得到了这个数字。 (我为datetimepicker和工具提示编写了angular指令)
.jsfile
$scope.noOfDateTimePickers = $('.bootstrap-datetimepicker-widget').length;
$scope.$watch('noOfDateTimePickers',function(newValue, oldValue){
if(newValue>0){
$('.dateTimePickerToolTips').removeAttr("data-original-titile");
}else{
$('.dateTimePickerToolTips').attr("data-original-titile", $scope.message);
}
});
.html fle
<div datetimepicker>
<a class data-toggle="tooltip" ng-attr-title="{{tooltipMessage}}" tooltip>
<input type="text" ng-model="startTime">
</a>
</div>
如果我的代码存在问题,有人可以帮我吗?
答案 0 :(得分:0)
你的问题是你的jQuery调用正在进行一次性DOM搜索,然后存储在你的$scope.noOfDateTimePickers
中。由于DOM搜索是一次,因此$ scope变量永远不会改变,因为它永远不会调用你的触发函数。
$scope.noOfDateTimePickers = $('.bootstrap-datetimepicker-widget').length //Called once and is never updated
我的建议是找到一种方法来摆脱这个一次性的jQuery调用,以确定页面上的小部件数量,而是有一个对象数组,它们代表你的小部件并根据该对象执行逻辑。