小编Ele*_*One的帖子

select2 - 隐藏搜索框

对于我更重要的选择,Select2中的搜索框非常棒.但是,在一个例子中,我有一个简单的4个硬编码选择.在这种情况下,搜索框是多余的,看起来有点傻.有可能以某种方式隐藏它吗?我在线查看了文档,但在构造函数中找不到任何选项.

当然,我可以使用常规的html选择,但为了保持一致性,我想尽可能使用Select2.

jquery jquery-select2

187
推荐指数
7
解决办法
16万
查看次数

使用Chrome查找JavaScript内存泄漏

我创建了一个非常简单的测试用例,它创建了一个Backbone视图,将一个处理程序附加到一个事件,并实例化一个用户定义的类.我相信通过单击此示例中的"删除"按钮,一切都将被清除,并且不应有内存泄漏.

代码的jsfiddle在这里:http://jsfiddle.net/4QhR2/

// scope everything to a function
function main() {

    function MyWrapper() {
        this.element = null;
    }
    MyWrapper.prototype.set = function(elem) {
        this.element = elem;
    }
    MyWrapper.prototype.get = function() {
        return this.element;
    }

    var MyView = Backbone.View.extend({
        tagName : "div",
        id : "view",
        events : {
            "click #button" : "onButton",
        },    
        initialize : function(options) {        
            // done for demo purposes only, should be using templates
            this.html_text = "<input type='text' id='textbox' /><button id='button'>Remove</button>";        
            this.listenTo(this,"all",function(){console.log("Event: "+arguments[0]);});
        },
        render : …
Run Code Online (Sandbox Code Playgroud)

javascript memory-leaks google-chrome backbone.js

158
推荐指数
4
解决办法
6万
查看次数

Twitter Bootstrap模式将html内容推向左侧

如果我打开一个模态对话框,通过Twitter Bootstrap,我注意到它将页面的所有html内容(即,在container)中向左推了一点,然后在关闭之后将其恢复正常.但是,这仅在浏览器宽度足够大而不能在"移动"(即最小)媒体查询上时才会发生.最新版本的FF和Chrome(未测试其他浏览器)会出现这种情况.

你可以在这里看到问题:http://jsfiddle.net/jxX6A/2/

注意:您必须增加"结果"窗口的宽度,以便切换到"med"或"large"媒体查询css.

我根据Bootstrap网站上显示的示例设置了页面的HTML:

<div class='container'>
    <div class='page-header'>
        <h4>My Heading</h4>
    </div>
    <div id='content'>
        This is some content.
    </div>
    <div class='footer'>
        <p>&copy; 2013, me</p>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我猜这不应该发生,但我不确定我做错了什么.

编辑:这是一个已知的错误,有关更多(和最新)的信息,请参阅:https://github.com/twbs/bootstrap/issues/9855

css jquery modal-dialog twitter-bootstrap bootstrap-modal

47
推荐指数
4
解决办法
4万
查看次数

使用AJAX登录时让Chrome提示保存密码

注意:此问题是从其原始版本进行了大量编辑.这个问题已经大大简化了.

以前曾多次提出类似的问题,不同的形式 - 例如,

如何让浏览器提示保存密码?

浏览器如何知道何时提示用户保存密码?

但是,这个问题涉及Chrome功能的一个非常具体的方面,所以在这方面它是完全不同的.

从过去的答案来看,似乎让Chrome提示密码保存的最佳方法是将表单提交给虚拟iframe,同时实际通过AJAX登录:示例.这对我来说很有意义,所以我现在已经花了几天的时间来摆弄一些示例代码.但是,Chrome在这方面的行为对我来说没有意义.完全没有.因此问题.

出于某种原因,如果在onDomReady之后/之后存在提交到虚拟iframe的表单,则Chrome不会提示您保存密码.

可以在这里找到一个jsfiddle ,但它没什么用处,因为你必须dummy.html在本地创建才能看到所描述的行为.因此,最好的方法是将完整的html复制到您自己的html中index.html,然后创建一个dummy.html文件.

这是完整的代码index.html.这三种方法都突出显示为(1),(2),(3).仅(2)确保提示用户保存其密码,并且(3)不起作用的事实对我来说特别困惑.

<html>
<head>
<title>Chrome: Remember Password</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-2.0.3.min.js"></script>

<script type="text/javascript">  

    $(function(){

        function create_login_form()
        {
            $('#login_form').html(
            "<input type='text' name='email'>" +
            "<input type='password' name='password'>" +
            "<input id='login-button' type='submit' value='Login'/>");
        }

        // (1) this does not work. chrome seems to require time after …
Run Code Online (Sandbox Code Playgroud)

javascript jquery google-chrome backbone.js

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

检测jQuery不支持的浏览器(2)

如果对这个问题有明显的答案,请原谅我,但我找不到它.我正在考虑切换到jQuery 2,虽然我不关心支持旧浏览器,但我希望能够告诉用户使用不受支持的浏览器,他们无法使用该网站.

我在这里(http://blog.jquery.com/2013/03/01/jquery-2-0-beta-2-released/)看到你可以使用条件注释在不同版本的IE上分支.js文件,但是我相信jQuery 2.0也会支持其他一些浏览器,而不仅仅是IE,所以我认为不会单独使用它[ 编辑:这是错误的,请参阅下面的更大编辑].

在一个理想的世界中,我将切换到jQuery 2,然后在jQuery告诉我它不支持浏览器时调用一个javascript函数.有没有一种直截了当的做法让我失踪?

谢谢.

编辑:

我遇到了这篇文章(http://bugs.jquery.com/ticket/13404),它指示我:http://jquery.com/browser-support/.事实证明,就支持而言,jQuery 2仅与IE浏览器上的jQuery 1.9不同.因此,或许更好的问题是如何检测jQuery不支持的浏览器(通常,不仅仅是版本2) - 我已经更新了问题标题.

EDIT2:

由于特征检测是此问题最常推荐的方法,因此jQuery支持方法在此处看起来很相关(http://api.jquery.com/jQuery.support/).然而,依赖它似乎也很不可思议(因为它可以在没有通知的情况下改变).

我认为这会产生关键问题.我怎么知道jQuery的功能是什么,或者不受旧浏览器的潜在不支持?例如,如果有人来与Firefox的4版本,旧版本的网站,我不会有任何的想法有什么特点我需要测试.如果jQuery可以提供某种完全支持的功能测试,就像这样对于HTML5:http://html5test.com/

EDIT3:

好的,所以使用条件包含语句(在下面的答案和jQuery的网站上突出显示),您可以处理旧版本的IE.但是,对于其他浏览器,它有点棘手.既然你不能依赖jQuery来告诉你关于浏览器对函数x,y或z的支持,我的方法就是查询底层的javascript.如果要查询基于CSS的支持,可以使用modernizr.对于基于javascript的支持,这是我用来检测其他浏览器的SUPER旧版本的方法:

function browser_ok() {

    if  (
            ( !Array.prototype.indexOf ) ||
            ( !Array.prototype.forEach ) ||
            ( !String.prototype.indexOf ) ||
            ( !String.prototype.trim ) ||                
            ( !Function.prototype.bind ) ||
            ( !Object.keys ) ||
            ( !Object.create ) ||
            ( !JSON ) ||
            ( !JSON.stringify ) ||
            ( !JSON.stringify.length …
Run Code Online (Sandbox Code Playgroud)

jquery jquery-2.0

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

Backbone.View:交换两个在父视图中共享元素的子视图

注意:据我所知,其他库(例如,Marionette)可以大大简化基于视图的问题.但是,我们假设这不是一个选项.

假设我们有一个给定"记录"(即模型)的父视图.该父视图有两个子视图,一个用于显示记录的属性,另一个用于编辑它们(假设在这种情况下编辑就地不合适).到目前为止,每当我需要删除/显示子视图时,我确实调用remove了传出视图和new传入视图,因此我每次都在销毁/创建它们.这很简单,易于编码/管理.

然而,似乎有必要弄清楚是否有任何可行的替代方法(看似默认的)删除/创建方法 - 特别是因为之前已被问过几次,但从未完全回答(例如,使用Backbone交换视图?)

所以我一直试图弄清楚如何让两个子视图在父视图中共享一个元素,从而阻止我每次都必须removenew它们一起.当一个人需要活动时,它会被渲染而另一个被"沉默"(即,不响应事件).因此,它们会不断更换,直到删除父视图,然后将它们全部删除.

我想出的可以在这里找到:http://jsfiddle.net/nLcan/

注意:交换是在RecordView.editRecord和中执行的RecordView.onRecordCancel.

虽然这似乎工作得很好,但我有一些担忧:

(1)即使在"非活动"视图中事件绑定被静音,两个视图是否可能存在设置相同元素的问题?只要呈现"活动"视图,它似乎不应该是一个问题.

(2)当两个子视图remove调用(即Backbone.View.remove)时,它调用this.$el.remove.现在,当删除第一个子视图时,这实际上将删除它们共享的DOM元素.因此,当remove在第二个子视图上调用时,没有要删除的DOM元素,我想知道是否这可能使该子视图难以清理自己 - 特别是如果它本身已经创建了许多DOM元素,那么在第一个子视图被渲染时写入....或者如果涉及子视图...... 似乎可能存在关于内存泄漏的潜在问题.

抱歉,我知道这有点令人费解.我在知识库的边界是正确的,所以我不完全理解这里涉及的所有潜在问题(因此问题).但我确实希望有人处理类似的问题,并能就这一切提供明智的意见.

无论如何,这里是完整的(简化示例)代码:

// parent view for displaying/editing a record. creates its own DOM element.
var RecordView = Backbone.View.extend({
    tagName : "div",
    className : "record",
    events : {
        "click button[name=edit]" : "editRecord",
        "click button[name=remove]" : "removeRecord",
    },
    initialize : …
Run Code Online (Sandbox Code Playgroud)

javascript jquery backbone.js backbone-views

7
推荐指数
1
解决办法
917
查看次数

如果发送/接收jQuery AJAX数据,是否可以只接收一些数据?

我们假设这是在jQuery中执行的:

$.ajax({
    url : 'ajaxcall.php',
    data : { 'data' : { ary : [1,2,3,3,4,5], txt : "ima let u finish" } },
    dataType : 'json',
    type : 'post',
    timeout : 10000
});
Run Code Online (Sandbox Code Playgroud)

而ajaxcall.php包含:

$return_obj = array();
$return_obj['ary'] = array(9,8,7,6,5);
$return_obj['txt'] = "ok then";

echo json_encode($return_obj);
die();
Run Code Online (Sandbox Code Playgroud)

我期待发生以下情况(由于数据包丢失,连接问题等):

  • Ajaxcall.php执行,但$ _POST变量为空.
  • $ .ajax()调用的promise将被执行,但返回给它们的数据为空.

但是,我真正担心的是这样的情况:

  • Ajaxcall.php执行并且$ _POST ['data'] ['txt']具有预期值,但$ _POST ['data'] ['ary']缺少某些值.
  • 执行$ .ajax()调用的promise并且data.ary具有期望值,但data.txt只是半个字符串(例如,"ok t").

这些情况可能吗?

php ajax jquery json

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

Backbone.View:delegateEvents不会将事件重新绑定到子视图

我已经将这个问题分解为可能的最小例子(即,它只是为了证明问题,而不是必然代表一个真实的场景).

假设我有一个父视图(这里是"MainView"),它包含一个子视图(这里是"SubView").如果,在任何时候,我需要重新渲染父视图(从而重新呈现子视图),我在子视图中丢失事件绑定,尽管调用delegateEvents.

可以在这里找到一个jsfiddle:http://jsfiddle.net/ya87u/1/

这是完整的代码:

var MainView = Backbone.View.extend({
    tagName : "div",
    initialize : function() {
        this.subView = new SubView();
    },
    render : function() {
        this.$el.html(this.subView.render().$el); // .html() breaks binds
        this.subView.delegateEvents(); // this re-establishes them
        return this;
    }
});

var SubView = Backbone.View.extend({
    tagName : "div",
    events : {
        "click .button1" : "onButtonPress"
    },
    onButtonPress : function() {
        alert("Button pressed");
    },
    render : function() {
        var html = "<button class='button1'>Button1</button>";
        this.$el.html(html);
        return this;
    }
});

var …
Run Code Online (Sandbox Code Playgroud)

javascript jquery backbone.js

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

在元素中居中引导按钮组

我试图找出btn-group在一个元素中居中Bootstrap按钮组(即)的最佳方法.所以,例如,如果你有这个:

<div id='toolbar'>
    <div class="btn-group">
        <button type="button" class="btn btn-default">Command1</button>
        <button type="button" class="btn btn-default">Command2</button>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我如何确保btn-group始终居中toolbar(假设它可以适合)?我提出的方法如下:我div绕过它btn-group,找出它的宽度btn-group,然后在包装器上设置该宽度margin:0 auto.但是,我不喜欢这种方法有两件事:

(1)btn-group通过在包装纸上设置边框并不断减小它直到找到合适的宽度,需要反复试验才能确切知道其宽度.

(2)如果内容的宽度改变了一个像素(例如,按钮文本改变,或者由于它们的字体设置等在不同的机器上看起来不同),那么它不再居中而第二个按钮下降一条线.当然,你可以在这里留下几个像素的余地,但是这两个按钮实际上并不是首先完全居中.

肯定有更好的办法.有任何想法吗?这是我的方法(jsfiddle):

HTML:

<div id='toolbar'>
    <div class='wrapper'>
        <div class="btn-group">
            <button type="button" class="btn btn-default">Command1</button>
            <button type="button" class="btn btn-default">Command2</button>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

css:

#toolbar {
    width: 100%;
    max-width: 700px;
    margin: 10px;
    border: 1px solid black;
    padding: 10px;
}

#toolbar .wrapper {
    width: 197px;
    margin: …
Run Code Online (Sandbox Code Playgroud)

html css twitter-bootstrap twitter-bootstrap-3

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

PyQt 4:使标签可滚动

我正在尝试创建一个标签,我可以写出程序的当前状态 - 例如:

"读数据......"

"处理数据......"

"完成."

如果文本到达标签的底部,那么它应该自动滚动文本,以确保它显示最新消息(就像控制台窗口一样).我一直在摆弄标签和卷轴超过一个小时......但无济于事.我尝试将我的标签放在一个scrollarea(这似乎是这里建议的相关答案) - 这段代码是从Qt Designer生成的:

class Ui_Dialog(object):
def setupUi(self, Dialog):
    Dialog.setObjectName(_fromUtf8("Dialog"))
    Dialog.resize(218, 137)
    self.frame = QtGui.QFrame(Dialog)
    self.frame.setGeometry(QtCore.QRect(209, 399, 161, 111))
    self.frame.setFrameShape(QtGui.QFrame.StyledPanel)
    self.frame.setFrameShadow(QtGui.QFrame.Raised)
    self.frame.setObjectName(_fromUtf8("frame"))
    self.scrollArea = QtGui.QScrollArea(Dialog)
    self.scrollArea.setGeometry(QtCore.QRect(10, 10, 201, 121))
    self.scrollArea.setWidgetResizable(True)
    self.scrollArea.setObjectName(_fromUtf8("scrollArea"))
    self.scrollAreaWidgetContents = QtGui.QWidget()
    self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 199, 119))
    self.scrollAreaWidgetContents.setObjectName(_fromUtf8("scrollAreaWidgetContents"))
    self.label = QtGui.QLabel(self.scrollAreaWidgetContents)
    self.label.setGeometry(QtCore.QRect(15, 10, 151, 101))
    self.label.setWordWrap(True)
    self.label.setObjectName(_fromUtf8("label"))
    self.scrollArea.setWidget(self.scrollAreaWidgetContents)

    self.retranslateUi(Dialog)
    QtCore.QMetaObject.connectSlotsByName(Dialog)
Run Code Online (Sandbox Code Playgroud)

我的主.pyw文件然后包含:

import sys
from gui_test import *

class MyForm(QtGui.QDialog):

    def __init__(self,parent=None):

        QtGui.QWidget.__init__(self,parent)
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)

        self.ui.label.setText("Warning: When passing a QString to the …
Run Code Online (Sandbox Code Playgroud)

python pyqt pyqt4 qt-designer qscrollarea

4
推荐指数
1
解决办法
4310
查看次数

Github Windows:使用'master'和'gh-pages'分支

我有一个非常简单的jQuery插件,我已经编写并放在github上了.我正在使用Github for Windows和网站本身来管理项目.

不幸的是,如果我尝试通过链接包含我上传的任何文件.js.css文件,Raw由于MIME类型的原因,它在我的浏览器中会失败plain/text.

所以,在过去的几个小时里,我一直在研究如何通过github获取文件的副本,人们(包括我自己)可以链接到这些文件.第一步似乎是创建一个项目页面(gh-pages分支)......我已经掌握了很多东西.

但是,到目前为止我发现的所有材料都要求你拥有一个基于UNIX的系统,或者做一些基于控制台的技巧:

示例:GitHub,SO,SO

现在,必须有一种简单的方法来简单地使这些源文件可用.我经历了创建"项目页面"的自动化步骤,现在我遇到了另一个声称是在"主"分支后面的分支,但我看不出接下来应该做什么.我甚至不清楚为什么在地球上我需要建立另一个分支.整个事情似乎远比它需要的复杂得多.

所以,回顾一下:

  • 我在Github中创建了一个分支(使用Windows应用程序和网站)
  • 我可以管理它,并更新我的文件,没有任何意外
  • 我无法使用"原始"链接包含.js和.css文件
  • 我希望能够在页面中包含这些文件
  • 我想通过Github for Windows或网站本身来做这件事

如果有人能帮助我解决这个问题,我会很感激.此外,我期待很多其他人也会.

编辑:这是一个着名的Github项目的例子,它的文件可以通过Github获得:

选择2:http: //ivaynberg.github.io/select2/select2-3.4.2/select2.js

编辑2:好的,从概念上讲,我现在明白为什么我必须创建一个单独的分支,以便共享文件 - 因为Github的源控制方面并不意味着充当CDN,项目页面只是提供一个公共网站您可以在哪里放置文件.所以问题现在变成:如何将我的文件从主分支放入gh-pages分支?我现在并不担心自动化它或任何东西,我想要的只是访问目录结构,所以我可以在那里放置文件.我尝试过同步并重新同步我的分支与Github Windows,但它告诉我,没有什么可以从gh-pages分支获得,即使它是"10提交落后".到底是怎么回事?

编辑3:添加了我自己的答案,为我提出的(到目前为止).

javascript css jquery github github-for-windows

4
推荐指数
1
解决办法
1618
查看次数