gpt4 book ai didi

javascript - 防止 Colorbox 内输入元素上的 Enter 键(KeyCode 13)关闭 colorbox

转载 作者:行者123 更新时间:2023-11-28 09:13:54 25 4
gpt4 key购买 nike

我在 IE9 中遇到一个奇怪的问题。

如果我将输入元素放入颜色框(内联 HTML)中,然后在所述输入元素具有焦点的情况下按 Enter 键 - 颜色框会关闭吗?

这在 Chrome 中不会发生。

我设置了一个 jsfiddle 来演示这个问题:

  • 打开 fiddle :http://jsfiddle.net/rv74f/3/
  • 点击内联 HTML 链接
  • 单击结果文本框以使其获得焦点
  • 按键盘上的 Enter 键 - Colorbox 就会淡出?

我在选项中看不到任何内容来阻止/解释这种行为?

如何防止 Enter 在捕获所有输入元素上的按键事件的情况下关闭颜色框?

我快速查看了 colorbox 源代码并注意到诸如 escKey: true, 之类的参数,但我看不到任何解释此 Enter 键问题的参数?

编辑:

如果我将以下内容添加到 publicMethod.close()

alert("caller is " + arguments.callee.caller.toString());

它告诉我 .close() 正在被 publicMethod.close() 调用

如果我添加以下内容(请注意使用 caller.caller 来进一步向上移动堆栈):

alert("caller is " + arguments.callee.caller.caller.toString());

我得到以下信息:

---------------------------
Message from webpage
---------------------------
caller is
function( event ) {

// Make a writable jQuery.Event from the native event object
event = jQuery.event.fix( event );

var i, ret, handleObj, matched, j,
handlerQueue = [],
args = core_slice.call( arguments ),
handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [],
special = jQuery.event.special[ event.type ] || {};

// Use the fix-ed jQuery.Event rather than the (read-only) native event
args[0] = event;
event.delegateTarget = this;

// Call the preDispatch hook for the mapped type, and let it bail if desired
if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
return;
}

// Determine handlers
handlerQueue = jQuery.event.handlers.call( this, event, handlers );

// Run delegates first; they may want to stop propagation beneath us
i = 0;
while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {
event.currentTarget = matched.elem;

j = 0;
while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {

// Triggered event must either 1) have no namespace, or
// 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).
if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {

event.handleObj = handleObj;
event.data = handleObj.data;

ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )
.apply( matched.elem, args );

if ( ret !== undefined ) {
if ( (event.result = ret) === false ) {
event.preventDefault();
event.stopPropagation();
}
}
}
}
}

// Call the postDispatch hook for the mapped type
if ( special.postDispatch ) {
special.postDispatch.call( this, event );
}

return event.result;
}
---------------------------
OK
---------------------------

那么 colorbox.close() 方法是由 JQuery 函数调用的吗?现在我只需要弄清楚为什么......

谜团加深......

最佳答案

这似乎已修复 - 无法在 colorbox v1.4.33 (2013-10-31) 中重新创建问题

关于javascript - 防止 Colorbox 内输入元素上的 Enter 键(KeyCode 13)关闭 colorbox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15927223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com