Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何防止指令内的输入模糊_Javascript_Jquery_Angularjs - Fatal编程技术网

Javascript 如何防止指令内的输入模糊

Javascript 如何防止指令内的输入模糊,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我有一个自定义指令,该指令应具有以下功能: -加载时显示按钮 -单击按钮时显示输入框和展开框 -当用户在文本框中键入时显示明文图标 -单击图标时清除文本并重新聚焦文本框 -最小化文本框并在用户单击远离文本框和清除文本图标时显示按钮 以下是我目前掌握的情况: 我的问题是,当用户单击“清除”图标时,文本框的模糊功能会启动,框会失去焦点 我尝试在我的控制器中创建一个范围变量,让我知道单击了哪个元素。然后我尝试在指令的blur函数中共享这个变量,但它没有定义 $scope.clickElem; $do

我有一个自定义指令,该指令应具有以下功能:

-加载时显示按钮

-单击按钮时显示输入框和展开框

-当用户在文本框中键入时显示明文图标

-单击图标时清除文本并重新聚焦文本框

-最小化文本框并在用户单击远离文本框和清除文本图标时显示按钮

以下是我目前掌握的情况:

我的问题是,当用户单击“清除”图标时,文本框的模糊功能会启动,框会失去焦点

我尝试在我的控制器中创建一个范围变量,让我知道单击了哪个元素。然后我尝试在指令的blur函数中共享这个变量,但它没有定义

$scope.clickElem;

$document.bind('click',function(e){
    $scope.clickElem = e.target;
    $scope.$apply();
    console.log($scope.clickElem);
});
有没有办法解决这个问题?非常感谢您的帮助。

试试这个

var scope;
$('ELEMENT').click(function(e){
scope = e.target;
});

这应该是最重要的。不返回未定义。

如果您可以使用HTML5,您可以将
替换为
,并免费获得清晰的行为。这是你修改后的方法。

太简单了。再次感谢迈克尔!