小编Kli*_*lik的帖子

有没有办法在focusOut中使用event.preventDefault?如果没有,为什么?

我想阻止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元素.

我做了一些研究,已经发现了一些与我的问题相关的文章,但没有一个回答这个问题.

  1. preventDefault对焦点事件不起作用 - 这里给出的答案是使用任何类型的事件操作的替代路径.

  2. 如果没有必要的值,将焦点反射回文本框 - 这里,解决方案是用来setTimeout()将焦点设置回原始元素,这是好的,但我想了解问题的核心,为什么preventDefault()是不在这里工作.

  3. jQuery preventDefault()不起作用 - 我尝试了一些可能的解决方案来自这个线程,比如使用event.stopImmediatePropagation()event.stop(),但一切都没有用.

我感谢任何时候,知识和解决方案(包括尝试)在这件事上的贡献.我真的想学习......

这是一个jsFiddle,向您展示问题...随意玩它并尝试不同的解决方案.

jquery event-handling javascript-events preventdefault

16
推荐指数
1
解决办法
2万
查看次数

为什么event.relatedTarget不能在Firefox中使用focusin/focusout事件?

我需要在我的focusin函数中找到以前关注的项目.这是一个示例代码:

$('#id').on('focusin', function(event) {
  //console.log(event.relatedTarget.nodeName);    //doesn't work
}
Run Code Online (Sandbox Code Playgroud)

我已经做了一些研究,虽然我看到有些人在帖子中说这只适用于像mousedown等鼠标事件,但我发现一些来自信誉良好的来源的文章让我相信这应该有效.

  1. https://developer.mozilla.org/en-US/docs/DOM/event.relatedTarget这里Firefox 特别提到了event.relatedTarget如何在'focusin'事件中返回"哪个EventTarget失去焦点". Firefox是我正在使用的浏览器.

  2. http://www.w3.org/TR/DOM-Level-3-Events/#events-FocusEvent在此书签中,您可以看到每个FocusEvent都有一个名为related target的只读属性.

  3. 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)

firefox dom focus event-handling

10
推荐指数
1
解决办法
4104
查看次数

为什么jQuery的.data方法表现得像这样?(可能的错误?)

这段代码最能说明我的困惑.

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)

javascript jquery jquery-ui object

5
推荐指数
1
解决办法
199
查看次数

有没有办法强制Python程序在2.7版本中运行?

背景

我有一些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)

python python-2.7 python-3.x

5
推荐指数
2
解决办法
2761
查看次数

我什么时候应该使用mysqli_kill()和mysqli_close()?

我有自己的数据库,我正在使用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()还有如果,我描述了,就不会有任何理由继续为性能而活着的连接情况?

php mysql database mysqli database-connection

3
推荐指数
1
解决办法
3016
查看次数

为什么在这个VHDL函数的括号之前有撇号?

我是编码测试台的新手,因此我需要学习很多新语法.我坚持试图理解"字符串"后的撇号是什么.

它似乎不是来自这里的属性.另外,我在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)

syntax vhdl

3
推荐指数
1
解决办法
710
查看次数