2

谁能指出这段代码有什么问题。这适用于 chrome,但不适用于 Firefox。我已经更新了我的问题以更清楚。请看下面的样子。实际上,它是tinymce编辑器。当我单击时,工具栏中的方程式符号,会自动创建一个带有AMedit类的跨度。现在当光标在方程式内时,回车键不应该将光标移动到新行。我的代码仅适用于 chrome,但不适用于其他浏览器。您可以在不同的浏览器中检查。

http://beyondthelogix.com/demos/editordemo/demo.html

tinyMCE.init({

theme : "advanced",
mode: "exact",
elements : "elm1",
setup : function(ed) {
ed.onInit.add(function(ed, evt) {
    tinymce.dom.Event.add(ed.getDoc(), 'keydown', function(e) {
        var existing = tinyMCE.get('elm1').getElement(e);
        var code = (e.keyCode ? e.keyCode : e.which);
        var spans = tinyMCE.activeEditor.getBody().getElementsByTagName("span");
        if (spans.length > 0)
        {
           for (var i = 0; i < spans.length; i++)
           {
              if (spans[i].getAttribute("class") === "AMedit")
              {
                 if (code === 13)
                 {

        (e.preventDefault) ? e.preventDefault() : e.returnValue = false;
         }
              }
           }
        }
    });
  });
},

当我使用警报时,我在 Firefox 中得到它但e.preventDefault()不起作用。

4

4 回答 4

1
 $("#button").click(function (e) {
    e.preventDefault();

Chrome 会初始化,event但 Firefox 不会。使用它,它将在 Firefox 和 Chrome 中运行。

不要放 100 preventDefault();。放在需要的地方。

例子:

$(".button").click(function (e) {
    e.preventDefault();
    $(this).fadeOut(250, function () {
        $(this).closest('td').children('.hiddenDiv').show().fadeIn();
    });
});

希望它有所帮助。

于 2014-07-03T14:32:19.823 回答
0

这:(e.preventDefault) ? e.preventDefault() : e.returnValue = false; 您似乎正在尝试访问属性preventDefault而不是调用方法preventDefault()

于 2014-07-02T12:31:56.113 回答
-2

尝试使用 evt 而不是 e 来使用 preventDEfault。

evt.preventDefault()

我认为您正在调用一个不存在的变量或参数。你在控制台中看到什么了吗?

于 2013-09-22T21:10:47.600 回答
-2

尝试返回 false ,应该适用于所有浏览器。

return false;
于 2013-09-22T21:04:31.603 回答