我想阻止focusOut(或blur)事件的默认事件,并将焦点设置为特定的输入字段.
这是我已经尝试过的:
使用event.preventDefault()之初,在函数结束时(用于测试目的,而不是风格)
return false; 防止传播
将焦点直接设置回元素中的元素(但我发现焦点仍然会切换,因为焦点开关在函数执行后.on()执行.我知道我可以使用setTimeout,但我想避免它并弄清楚心脏这个问题.)
使用blur而不是focusOut
我的代码是这样的:
_triggerEventHide: function(inst, eventType) {
inst.$target.on(eventType, function(event) {
event.preventDefault();
if (!$.suggestBox.$divCont.hasClass($.suggestBox.mouseOverClassName)) {
$.suggestBox.$divCont.css({display: 'none'}); //reposition Suggestbox
} else {
inst.target.focus();
}
event.preventDefault();
return false;
});
}
Run Code Online (Sandbox Code Playgroud)
注意,它$target表示jQuery包装的元素并target表示本机DOM元素.
我做了一些研究,已经发现了一些与我的问题相关的文章,但没有一个回答这个问题.
preventDefault对焦点事件不起作用 - 这里给出的答案是使用任何类型的事件操作的替代路径.
如果没有必要的值,将焦点反射回文本框 - 这里,解决方案是用来setTimeout()将焦点设置回原始元素,这是好的,但我想了解问题的核心,为什么preventDefault()是不在这里工作.
jQuery preventDefault()不起作用 - 我尝试了一些可能的解决方案来自这个线程,比如使用event.stopImmediatePropagation()和event.stop(),但一切都没有用.
我感谢任何时候,知识和解决方案(包括尝试)在这件事上的贡献.我真的想学习......
这是一个jsFiddle,向您展示问题...随意玩它并尝试不同的解决方案.
我需要在我的focusin函数中找到以前关注的项目.这是一个示例代码:
$('#id').on('focusin', function(event) {
//console.log(event.relatedTarget.nodeName); //doesn't work
}
Run Code Online (Sandbox Code Playgroud)
我已经做了一些研究,虽然我看到有些人在帖子中说这只适用于像mousedown等鼠标事件,但我发现一些来自信誉良好的来源的文章让我相信这应该有效.
https://developer.mozilla.org/en-US/docs/DOM/event.relatedTarget这里Firefox 特别提到了event.relatedTarget如何在'focusin'事件中返回"哪个EventTarget失去焦点". Firefox是我正在使用的浏览器.
http://www.w3.org/TR/DOM-Level-3-Events/#events-FocusEvent在此书签中,您可以看到每个FocusEvent都有一个名为related target的只读属性.
http://www.w3.org/TR/DOM-Level-3-Events/#event-type-focusIn这里他们特别指出'FocusEvent'有一个名为'relatedTarget'的属性,即"事件目标丢失焦点(如果有的话)."
那么我在这里做错了什么?它必定是某种愚蠢的语法错误或其他东西.我找不到event.relatedTarget的nodeName.
更新:我可以在IE中使用它,但这在Firefox中不起作用???
$("#id").on('focusin', function(event) {
$('#textbox').text(event.relatedTarget.nodeName);
}
Run Code Online (Sandbox Code Playgroud) 这段代码最能说明我的困惑.
var nativeObj, jWrapped, jSelector;
//WIAT = "What I Am Thinking"
nativeObj = $( '#tableTab' ) [0]; //WIAT: unwrap the jQuery object created by the selector and get the native DOM object
jWrapped = $( nativeObj ); //WIAT: wrap up the native DOM object again... should be equal to $( '#tableTab' )
jSelector = $( '#tableTab' ); //WIAT: pass the jQuery object as reference to jSelector variable
// set the data with jQuery's .data method
$.data( jWrapped, 'key', { test: …Run Code Online (Sandbox Code Playgroud) 我有一些Python脚本使用仅适用于Python 2.7的库,所以我希望能够在Python 2.7版本中运行它们.
我认为如果我能在Python文件的顶部放置一些代码来检测它是否在Python 3中运行并且如果是这样在2.7版本中执行,那将会很棒.这可能吗?
例如,伪代码将是:
if (self.getPythonVersion != 2.7):
os.execute('python27 ' + os.cwd + 'script.py')
exit()
Run Code Online (Sandbox Code Playgroud)
编辑:这是供我个人使用,而不是用于分发.
我在下面使用了mgilson的答案让这个对我有用.我无法让os.exec()工作,但我没有花很长时间.第二个脚本对我有用.以下是我使用和工作的内容:
if sys.version_info[:2] > (2, 7):
code = subprocess.call(['python27', sys.argv[0] ])
raise SystemExit(code)
Run Code Online (Sandbox Code Playgroud) 我有自己的数据库,我正在使用Xampp运行.我正在使用Apache和MySql服务,虽然我还提供了公共访问权限.我想知道结束一堆sql查询的正确方法.我正在使用ajax将数据发送到php页面并从服务器查询一些数据.在ajax请求期间,我编写了处理程序php页面,因此它将执行多个查询(至少不止一个)以获取我需要的特定数据.现在,我不知道在什么时候我应该使用mysqli_kill()或mysqli_close().我现在已经设置好了,所以只有在执行了特定ajax请求的所有即时查询之后,才运行mysqli_close().我甚至不使用mysqli_kill().我不太了解数据库连接或管理服务器上的性能,所以我不知道如何考虑这一点.一方面,在用户注销网页之前我不需要关闭连接,对吧?或者我应该只是打开和关闭每个连接,并处理?
这个处理程序php页面处理来自我所拥有的几个网页的请求,并且在其中一个网页中有一个输入框,每次按键都会发送ajax请求以显示提示(可能的匹配)...还要注意这是一个仅限员工访问的页面,所以连接不应该太高.
我也看了看这篇帖子有人可以解释一下这个关于mysqli关闭函数的说法吗?
答案与php手册网站的建议相矛盾.会有人请澄清时使用mysqli_kill(),并mysqli_close()还有如果,我描述了,就不会有任何理由继续为性能而活着的连接情况?
我是编码测试台的新手,因此我需要学习很多新语法.我坚持试图理解"字符串"后的撇号是什么.
它似乎不是来自这里的属性.另外,我在VHDL中的撇号之后从未见过括号.
procedure Shrink_line(L : inout LINE; pos : in integer)
is
variable old_L : LINE := L;
begin
if pos > 1 then
L := new string'(old_L(pos to old_L'high));
Deallocate(old_L);
end if;
end;
Run Code Online (Sandbox Code Playgroud)