小编ele*_*y19的帖子

如何覆盖jQuery对话框的ESC键按下行为

我按下了一个表单提交,其中我正在显示一个带有旋转轮的小jQuery对话框.当我按下escape时,对话框关闭,这会中断我的表单提交.用户按ESC键时如何克服.当为jQuery对话框按下ESC键时,如何防止用户退出?

jquery jquery-ui

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

window.onerror没有在Firefox中触发

我正在尝试创建一个javascript错误日志记录基础结构.

我试图设置window.onerror为我的错误处理程序.它适用于IE 6,但是当我在Firefox中运行它时,它会遇到一些冲突的onerror方法.

var debug = true;

MySite.Namespace.ErrorLogger.prototype = {

   //My error handling function.  
   //If it's not in debug mode, I should get an alert telling me the error.
   //If it is, give a different alert, and let the browser handle the error.
   onError: function(msg, url, lineNo) {
        alert('onError: ' + msg);
        if (!debug) {
            alert('not debug mode');
            return true;
        }
        else {
            alert(msg);
            return false;
        }
    }
}

//Document ready handler (jQuery shorthand)
$(function() { …
Run Code Online (Sandbox Code Playgroud)

javascript firefox jquery onerror

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

Javascript中的GWT自定义事件触发器

我有一个应用程序是一半GWT和一半Backbone.js.我们正在将应用程序从GWT过渡到Backbone,因此当我们添加新组件时,它们就在Backbone中.我们也用Backbone替换了一些现有的组件.

我试图替换的组件仍然需要能够让其GWT容器知道何时发生某些事件,以便容器可以影响其他GWT组件.我在GWT中有一个本机函数,它引用一个在Javascript中定义函数的全局命名空间.该函数呈现Backbone组件,因此GWT没有对组件本身的引用.

我尝试在GWT中定义一个自定义DOM事件,然后从Backbone代码触发该事件,但要么我做错了,要么就是不这样做.

我在创建自定义事件时引用了这些问题:如何将CSS AnimationEnd事件处理程序添加到GWT窗口小部件?&GWT自定义活动

我做了两次尝试从Backbone触发自定义事件并让GWT听取它,但都没有工作.

我需要帮助从Javascript(Backbone.js)触发一个事件(或调用一个回调或类似的东西),这些事件将在GWT中被"听到"(或被叫或其他).

两次尝试之间共同的代码是如何呈现Backbone组件以及如何触发事件:

从课堂上BackboneController.java:

public static void loadMessageEntry(final String selector, final String type, final QuipuId conversationID, final QuipuId messageID, final boolean enterIsSubmit) {
    String messageIDString = messageID.getId();
     String enterRole = enterIsSubmit ? "submit" : "newline";
     if(messageID.equals(QuipuId.NULL)) {
         messageIDString = "";
     }
     showMessageEntry(selector, type, conversationID.getId(), messageIDString, enterRole);
}
private static native void showMessageEntry(String selector, String type, String messageId, String conversationId, String enterRole) /*-{
    var intervalTimer = $wnd.setInterval(function() {
        if($wnd.Namespace.MessageEntry) { …
Run Code Online (Sandbox Code Playgroud)

javascript java events gwt backbone.js

8
推荐指数
1
解决办法
1538
查看次数

在CKEditor的instanceReady上调用时,setReadOnly会导致错误

我试图在实例完全加载后将我的CKEditor实例设置为"readOnly",但是我收到了一个Javascript错误:Cannot call method 'setReadOnly' of null.当我深入研究它时,错误来自ckeditor.js中的这一行,在editor.setReadOnly方法中:this.editable().setReadOnly(a);这意味着编辑器存在,但editable方法/属性(在CKEditor实例上)却没有.

下面是我的代码,我会稍微解释一下.我的应用程序是GWT和Backbone的组合.CKEditor本身是由Backbone代码创建的,但父元素是在GWT中,所以我在那里发起了setEnabled动作.

private native void setEnabledOnLoad(boolean enabled, String id) /*-{
  CKEDITOR.on("instanceReady", function(evt) {
    if(evt.editor.name === id) {
      Namespace.trigger(Namespace.Events.SET_ENABLED, enabled);
    }
  });
}-*/;

setEnabled: function(enabled) {
  this.editor.setReadOnly(!enabled);
  if(enabled){
    this.editor.focusManager.focus();
  } else {
    this.editor.focusManager.blur();
  }
}
Run Code Online (Sandbox Code Playgroud)

Backbone类具有Namespace.Events.SET_ENABLED该触发器的侦听器setEnabled.

我应该听听另一个CKEditor事件吗?似乎没有instanceReady事件editable.我错过了什么?

EDIT
this.editor是在Backbone类render函数中创建的,如下所示:

this.editor = CKEDITOR.replace(this.$(this.id)[0], config);
Run Code Online (Sandbox Code Playgroud)

instanceReady在创建之后不立即添加侦听器的原因是因为setEnabledOnLoad在实例完全初始化之前在GWT中调用了该函数.这是将代码放在两个地方的结果.GWT已经说"好了,创建了实例",但是当GWT进入下一行代码并希望将其设置为启用/禁用时,Backbone还没有完成.

javascript jquery gwt ckeditor backbone.js

8
推荐指数
2
解决办法
3839
查看次数

使用asp.net和C#从javascript调用外部服务器上的webservice

我正在尝试使用ASP.NET页面测试Web服务调用,该页面创建一个包含用户名和密码字段以及"提交"按钮的表单.(我正在使用的jQuery和.js文件都包含在head元素的脚本标记中.)

"提交"按钮调用在C#代码隐藏文件中创建的函数,该函数调用单独的JavaScript文件.

protected void mSubmit_Click(object sender, EventArgs eventArgs)
{
    String authenticate = String.Format("Authentication(\"{0}\",\"{1}\");", this.mUsername.Text,this.mPassword.Text);
    Page.ClientScript.RegisterStartupScript(this.GetType(), "ClientScript", authenticate, true);
}
Run Code Online (Sandbox Code Playgroud)

JavaScript函数Authenticate使用jQuery和Ajax对不同的服务器进行Web服务调用,发送JSON参数并期望返回JSON作为响应.

function Authentication(uname, pwd) {

    //gets search parameters and puts them in json format
    var params = '{"Header":{"AuthToken":null,"ProductID":"NOR","SessToken":null,"Version":1},"ReturnAuthentication":true,"Password":"' + pwd + '","Username":"' + uname + '",”ReturnCredentials”:false }';

    var xmlhttp = $.ajax({
        async: false,
        type: "POST",
        url: 'https://myHost.com/V1/Identity/Authenticate',
        data: params,
        contentType: 'application/json'
    });

    alert(xmlhttp.statusText);
    alert(xmlhttp.responseText);

    return;
}
Run Code Online (Sandbox Code Playgroud)

但是,因为我正在调用的Web服务与ASP.NET,C#和JavaScript文件位于不同的服务器上,所以我没有得到statusTextresponseText警告.

不知何故,没有任何东西被发送到Web服务,我没有得到任何回报,甚至没有错误.我尝试在beforeSend属性中添加一个函数,但是没有触发.我需要一种特殊的方式来处理调用服务器外的Web服务吗?

UPDATE!

在jjnguy,Janie和Nathan的建议下,我现在正在尝试使用HttpWebRequest对Web服务进行服务器端调用.使用jjnguy的一些代码以及这个问题的代码,我想出了这个.

public …
Run Code Online (Sandbox Code Playgroud)

c# https web-services httpwebrequest bad-request

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

如何判断插入键是否被按下

我试图在我的应用程序中捕获某些keydown事件,但前提是同时没有按下"控制"键.我不想遇到屏幕阅读器键盘快捷方式的问题.Shift,Ctrl并且Alt很容易检查因为它们是在javascript事件上,但我还需要检查InsWindows键以及任何Mac控制键.

这是我这么远,它工作正常,但是当仍然触发了我的事件InsWindows按住.

handleKeydown: function(event) {
  var comboKeyPressed = event.ctrlKey || event.shiftKey || event.altKey;
  if(!comboKeyPressed && event.keyCode === $.ui.keyCode.HOME) {
    event.preventDefault();
    this.$('>ul>li:last').attr('tabindex', -1);
    this.$('>ul>li:first').attr('tabindex', 0).focus();
  } else if (!comboKeyPressed && event.keyCode === $.ui.keyCode.END) {
    event.preventDefault();
    this.$('>ul>li:first').attr('tabindex', -1);
    this.$('>ul>li:last').attr('tabindex', 0).focus();

  }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法轻松检查其他控制键,或者我是否需要捕获这些事件并在某些全局布尔值中保留它们this.isInsertPressed

javascript jquery events keydown

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

jVectorMap渲染太小

我的jVectorMap没有采用我在包含div上提供的新高度,只在默认(?)高度为54px时呈现.

这是在我的scripts.js文件中的document.ready函数中:

$('#team-map-usa').vectorMap({
  map: 'us_lcc_en',
  backgroundColor: '#ffffff',
  hoverColor: '#999999',
  color: '#dddddd',
  normalizeFunction: 'polynomial',
  values: myData,
  scaleColors: ['#d0c4dc', '#d1b0eb', '#b296cb', '#47006b'],
  onLabelShow: function(event, label, code) {
    label.text(code);
  })
});
Run Code Online (Sandbox Code Playgroud)

包含div:

    <section id="top">
      <div id="team-map-usa" style="width: 600px; height: 400px;"></div>
    </section>
Run Code Online (Sandbox Code Playgroud)

文档建议如果我在包含div上设置了宽度和高度,那么应该将其应用于创建的jVectorMap.div不会隐藏在任何一点(我在这里读到:Jvectormap非常小的div更改可能是一个问题)并且$('#team-map-usa')clientHeight和clientWidth都是在初始化vectormap时定义的.

这是我第一次使用jVectorMap,我必须遗漏一些东西.有关如何使地图显示正确尺寸的任何建议?

html javascript css jquery jvectormap

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

以编程方式将焦点设置在禁用按钮上不起作用

$(function () {
    $('#save').click(function() {
        $('#save').attr('disabled', 'disabled');
        console.log($(document.activeElement).attr('id'));
    });
    $('#test').focus();
    console.log($(document.activeElement).attr('id'));
});
Run Code Online (Sandbox Code Playgroud)
button:focus {
  outline: 1px dotted #000000;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<body id="body">
  <button id="discard" disabled="disabled">Discard</button>
  <button id="save">Save</button>
</body>
Run Code Online (Sandbox Code Playgroud)

我有一个Discard Changes按钮,单击时,用户会看到一个确认对话框,其中显示“您确定要放弃更改吗?”。当他们单击 时OK,我们关闭对话框并希望将焦点放回到Discard Changes按钮上,但我们现在已禁用它,因为没有要丢弃的更改。当我检查该document.activeElement值时,它不是禁用的按钮,而是主体元素。但是,当用户单击该Save按钮时,由于他们在物理上将焦点设置在该元素上,因此它会获得焦点,因此即使在禁用该按钮后,它仍然具有焦点。由于某种原因,在代码片段中,我没有看到在禁用的“保存”按钮上设置的焦点样式,即使在我的应用程序中我确实看到了它。

是否可以使用 jQuery 将焦点设置在禁用的按钮上?如果没有,为什么不呢?如果是这样,我做错了什么?

html jquery button

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

Java错误:未为类型Class定义方法getMethod(String,Class &lt;boolean&gt;)

我试图将方法作为参数传递给另一个类中的方法。该方法在第一类中定义,而另一类的方法是静态的。看到它会更容易理解:

设定

public class MyClass extends ParentClass {
    public MyClass() {
        super(new ClickHandler() {
            public void onClick(ClickEvent event) {
                try {
                    OtherClass.responseMethod(MyClass.class.getMethod("myMethod",Boolean.class));
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    public void myMethod(Boolean success) {
        if(success.booleanValue()) {
            //do stuff
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试构建时,出现以下错误:

错误

The method getMethod(String, Class<boolean>) is undefined for the type Class<MyClass>
Run Code Online (Sandbox Code Playgroud)

问题不是没有找到myMethod,没有找到Class<MyClass>.getMethod,我也不知道为什么。

更新资料

我们已经重新编写了这部分代码,并且没有使用'getMethod orgetDeclaredMethod ' 。由于npe在我所做的事情中发现了两个问题,并且在寻找答案上付出了很多努力,因此我接受了这个答案。

java methods compiler-errors class undefined

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

Unicode字符,向下三角形,显示为奇怪的文本

我有一个网页,我在按钮上使用unicode向下三角形表示选择这些按钮将显示下拉列表.

我这样在css中添加三角形:

    .icon:after {
        content:"?";
    }
    .icon {
        width:12px;
        height:12px;
        margin: 3px;
        display: inline-block;
        cursor:default;
    }
Run Code Online (Sandbox Code Playgroud)

页面中的元标记是:

    <meta charset="UTF-8">
    <meta name="viewport" content="initial-scale=1.0, width=device-width" />
    <meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; chrome=1" >
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
Run Code Online (Sandbox Code Playgroud)

但是,三角形不显示为三角形,它们显示如下: 奇怪的文字而不是unicode字符

知道为什么它可能会像这样出现以及如何修复它?

javascript css unicode ascii utf-8

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

按钮使用三(3)个背景图像css

我正在尝试使用三个背景图像制作一个按钮,以便我们可以为按钮的文本提取翻译并进行良好的扩展.我们可能会为IE8添加基本样式,但我们的设计师希望我们使用这种样式,我们无法使用纯CSS3重新创建它.

这是图像:
按钮前端 微小的中间部分重复 按钮圆形端件

这是HTML(只是一个简单的按钮,但我想我应该把它放在一边:

<button class="back clickable" aria-label="Back" onclick="javascript:history.back();">Back</button>
Run Code Online (Sandbox Code Playgroud)

我已经尝试了几件事; 我将粘贴两次尝试的CSS.

尝试1:使用伪选择器
http://jsfiddle.net/c2B6X/

.back {
    background: url("images/back-middle.png") 14px 0 repeat-x;
    color: $white;
    height: 28px;
    padding: 5px;
    &:before {
        background: url("images/back-front.png") 0 0 no-repeat;
        width: 14px;
    }
    &:after {
        background: url("images/back-end.png") 100% 0 no-repeat;
        width: 8px;
    }
}
Run Code Online (Sandbox Code Playgroud)

尝试2:三background-images
http://jsfiddle.net/nPUQN/

.back {
    background: none;
    background-image: url("images/back-middle.png"), url("images/back-end.png"), url("images/back-front.png");
    background-position: 14px 0, 100% 0, 0 0;
    background-repeat: repeat-x, no-repeat, no-repeat;
    border-right: 8px transparent;
    border-left: 14px transparent;
    color: $white;
    height: 28px;
    padding: …
Run Code Online (Sandbox Code Playgroud)

html css image sass background-image

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