Jquery 有人知道IE是否返回false吗?
此简单测试代码适用于除IE8中测试的IE之外的所有浏览器:Jquery 有人知道IE是否返回false吗?,jquery,internet-explorer,Jquery,Internet Explorer,此简单测试代码适用于除IE8中测试的IE之外的所有浏览器: #dBox { height:100px; width: 230px; overflow-y:auto; } $(function () { $('#s').focus(function(){ $(this).after('<ul id="dBox"></ul>'); for (i=0;i<10;i++) $('#dB
#dBox {
height:100px;
width: 230px;
overflow-y:auto;
}
$(function () {
$('#s').focus(function(){
$(this).after('<ul id="dBox"></ul>');
for (i=0;i<10;i++) $('#dBox').append('<li>'+i+'</li>');
});
$('#dBox').live('mousedown',function(event) {
//event.stopPropagation();
//event.preventDefault();
//console.log (event.isDefaultPrevented());
//event.stopImmediatePropagation();
return false;
});
$('#s').blur(function () { $('#dBox').remove(); });
});
<input type="text" id="s"/>
我已经尝试了LiveFN的所有选择,但是没有运气。
在event.isDefaultPrevented上,它返回true,但dBox仍然被删除。
我甚至尝试在focus fn中绑定一个常规鼠标向下键。但同样的结果是,它可以在所有浏览器中工作,但不能在IE中工作。
有人知道怎么回事吗?这直接是因为使用live绑定事件的事件委派没有绑定direct元素。相反,它在文档的根节点上附加了一个处理程序 .live方法能够影响 尚未添加的元素 通过使用事件 委托:绑定到 祖先元素负责 在其上触发的事件 后代。处理程序传递给 .live从不绑定到元素; 相反,.live绑定了一个特殊的 指向DOM树的根的处理程序。 在我们的示例中,当新元素 单击后,将执行以下步骤: 假设您希望在单击dBox元素时保持对输入的关注,这将起作用,下面是一个示例 注意:如果您不想保持对输入的关注,那么从代码中删除触发器“focus”
$(function () {
$('#s').focus(function(){
if (!$('#dBox').length) {
var $dbox = $('<ul id="dBox"></ul>');
for (i=0;i<10;i++) $dbox.append('<li>'+i+'</li>');
$(this).after($dbox);
$dbox.bind("mousedown", function() {
$('#s').unbind('blur')
});
$dbox.bind("mouseup", function() {
$('#s').bind('blur', function () {
$('#dBox').remove();
}).trigger('focus');
});
}
});
$('#s').bind('blur', function () {
$('#dBox').remove();
});
});
您发布的代码实际上不起作用。您正在将一个松散的JavaScript块传递给$'s'。focus。这是你的实际代码吗?实际代码要复杂得多,但我在一个单独的文件中对上述代码进行了精确测试,以查看是否可以跟踪prb,但目前为止运气不佳。该代码会生成语法错误,@silversky。我认为你缺少一个函数{在那一点上。焦点行。是的,你是对的,这是一个输入错误,但这不是prb,因为在我的代码中我有函数{}.我在这个例子中做了改变also@silversky...sorry关于这一点…我不确定我的帖子发生了什么,但我用一个演示重新发布了。可能你在FF中测试了这个演示。我知道它正在工作。但我刚刚在所有其他浏览器中测试了这个演示,除了FF之外它不工作。问题是鼠标不会启动。我试过了在你的演示中一样的东西在mousedown上解除绑定,然后在mouseup上绑定,但是使用live fn。在焦点fn之外。并且相同的prb。mouseup除了FF之外没有被触发。我认为prb是因为live,但是在你的演示之后,我猜带有mouseup的prb是不同的。事实上,对于FF来说,甚至不需要编写mousedownfn。或返回false。我不知道这是否是FF中的错误,但它非常聪明。@silversky。我刚刚在IE 8和Safari 5中进行了测试,效果很好。不确定您的expierencing@JohnHartsock我还做了一些测试。只有当你点击滚动条时,带鼠标的prb才会启动。如果你点击“ul”鼠标的任何地方,鼠标就会启动,但不会启动滚动条,它只会在FF中触发。效果必须完全是oposite:当用户单击滚动条时,“ul”不必被删除,当用户单击“li”时,“ul”必须被删除,因为这意味着他做出了选择。在mousedown fn中使用retun false。它适用于所有眉毛。除了重新绑定mouseup wil我只在FF工作