小编cab*_*ret的帖子

除了第一次,jQuery对象永远不会改变

我遇到了一个我正在尝试修改的对象的问题.该对象在格式中具有一定数量的键key_yyyy-mm-dd.当某些输入字段失去焦点时,我会触发一个修改对象的函数.这个功能如下:

function updateHotelBooking()
    {
        $(".no_hotel").each(function(i) {
            var day = $(this).attr('name').match(/\[(.*?)\]/)[1];
            hotelBooking["key_" + day] = parseInt($(this).val());
        }); 
    }
Run Code Online (Sandbox Code Playgroud)

.no_hotel 是触发函数的文本框,它们还提供了我想要放在对象中的值.

现在,假设我放入3第一个文本框,console.log将返回以下对象:

Object
key_2011-08-21: 3
key_2011-08-22: 0
key_2011-08-23: 0
key_2011-08-24: 0
key_2011-08-25: 0
Run Code Online (Sandbox Code Playgroud)

但是,下次我在文本框中放入一些东西(或者应该触发该函数的另一个文本框)时,它会触发,但是返回的对象保持不变.因此,不是将第一个数字改为5,而是再次返回3.

我不知道为什么.我的代码看起来非常简单,和console.logday$(this).val()返回正确的价值观.这只是我的对象,没有得到更新.

有谁有想法吗?非常感谢!

编辑:

hotelBooking在之后初始化$(document).ready():

var hotelBooking = {};

调用updateHotelBooking的方法如下:

$(".roomrequest").blur(function()
{
    updateHotelBooking();
});
Run Code Online (Sandbox Code Playgroud)

EDIT2:JSFiddle:http://jsfiddle.net/pBYeD/2/

javascript jquery object

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

箭头键在Firefox中不起作用

我们正在HTML/CSS/JS中创建幻灯片,但由于某些原因它在Firefox中无法正常工作.它在Webkit浏览器中运行没有问题.

代码是这样的:

    keyPress : function() {
      $( document.body ).keydown(function(e) {
         if ( e.keyCode === 37 || e.keyCode === 39 || e.which == 37 || e.which === 39) {
            e.preventDefault();
            ( e.keyCode === 39 || e.which === 39 ) ? Slides.next() : Slides.prev();
         }
      });
   },
Run Code Online (Sandbox Code Playgroud)

如果我使用$( document )而不是( document.body )它确实改变我的颜色,但幻灯片不会改变..

出于某种原因,Firefox(7.0.1,OSX Lion)没有拿起按键..它在Safari/Chrome中运行没有问题.

我们正在测试的网站是:#took link out

javascript firefox jquery keypress

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

嵌套或不嵌套资源

在过去的几天里,我一直在玩Rails.

我不确定是否应该嵌套资源,以及如何确定它.

让我假装我有一个应用程序,用户可以注册并制作待办事项列表.他们可以选择将这些列表公开或私有.

我遇到麻烦的地方是我是否应该在用户资源下嵌套列表:

如果我这样做,我最终得到的结果如下:

/users/:id/lists /users/:id/lists/:list_id

但是,如果我想说,请查看所有公开名单/lists?这会干扰路线的宁静,不是吗?

我无法嵌套列表并为用户和列表分别设置路径,但至少在我的脑海中再次遇到麻烦.

/users/:id # some profile page /lists # should this link to all lists or all the current user's lists?

但是,如果我想显示特定用户的列表,我不知道我的路线是什么.

有没有办法以某种方式结合这个?将列表嵌套在用户资源下,但仍然有/listslists_path?或者那只是一个自定义的命名路线?

我对Rails中比我更熟练的人如何解决这个问题感兴趣.

rest routes ruby-on-rails ruby-on-rails-3

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

引导Backbone应用程序

我已经看到了几种如何做到这一点的方法,但我永远无法弄清楚哪种方法是"正确的".

来自NetTuts +Addy Osmani的Jeffrey Way实例化了一个"主要"应用程序视图,以启动他们的应用程序.

require(['views/app'], function(AppView) {
  new AppView();
});
Run Code Online (Sandbox Code Playgroud)

来自Railscasts的Ryan Bates通过实例化路由器来启动他的应用程序,该路由器随后处理后续请求:

window.App =
    Models: {}
    Collections: {}
    Views: {}
    Routers: {}

    init: ->
        new App.Router()
        Backbone.history.start()
    }
}

$(document).ready ->
    App.init()
Run Code Online (Sandbox Code Playgroud)

这两种引导应用程序的方式之间是否存在重要差异?

我非常喜欢Ryan Bates如何创建一个App对象,他将所有模型,视图都附加到其中......然而,他使用CoffeeScript,我不确定这是否会对此对象的处理方式产生任何影响.我试过这个,我无法使用RequireJS:

require(['jquery', 'backbone', 'router'], function ($, Backbone, Router) {
    window.App = {
        Models: {},
        Collections: {},
        Views: {},
        Aggregator: _.extend({}, Backbone.Events),
        Hook: $('#application'),
        Router: Router,

        init: function() {
            new App.Router();
            Backbone.history.start();
        }
    }
    $(document)ready(function() {
        App.init();
    });
}); …
Run Code Online (Sandbox Code Playgroud)

javascript amd coffeescript requirejs backbone.js

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

CodeIgniter/Ajax - 将发布值发送到控制器

我正在编写一个简单的登录表单.当用户单击Login按钮时,我想将post值发送到我的控制器,根据我的数据库验证它们(使用模型)并返回一个值.基于该值,我想要将用户发送到成员区域,或者在我的表单上显示错误消息.此错误消息具有类"错误",默认情况下是隐藏的.我想使用jQuery的show()在凭据错误时显示它.

我的表单有两个文本字段,一个用于电子邮件地址,另一个用于密码和提交按钮.但是,我从来没有真正使用Ajax,除了非常基本的东西,如一个简单的加载器,所以我不知道下一步该做什么.

    $("#btn_login").click(
    function()  
    {
    // get values
    var email_address = $("#email_address").val(); 
    var password =  $("#password").val();

    // post values? and ajax call?

    //stop submit btn from submitting
    return(false);

    }
);
Run Code Online (Sandbox Code Playgroud)

我假设我必须在这里使用jQuery的ajax()方法,所以我在考虑使用这个例子:

$.ajax({
     type: "POST",
     url: "some.php",
     data: "name=John&location=Boston",
     success: function(msg){
        alert( "Data Saved: " + msg );
     }
});
Run Code Online (Sandbox Code Playgroud)

但是,我不确定如何在数据中获取我的帖子值(这两个变量):thingy ..或者我应该在这里采取另一条路?这似乎是我永远不会忘记在我学习之后该怎么做的事情,所以如果有人可以帮助我,我会感激不尽.非常感谢.

ajax jquery codeigniter

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

CodeIgniter日历/计划应用程序,结构和执行

这个项目实际上让我失眠.我整天想着它,我在晚上梦见它,当我躺着醒来时,我会考虑更多.哈哈,这真让我到了哭泣的地步.我不知道如何构建我的应用程序,我不知道如何执行我的想法.

首先,简要介绍一下.我学习交互式多媒体设计,我有一门名为"项目"的课程.顾名思义,我们必须使用PHP,HTML/CSS,MySQL,AJAX,以及我们想要使用的任何技术来思考和创建项目,更具体地说是Web应用程序.由于我们还必须在一定程度上挑战自己,所以我决定学习并使用CodeIgniter框架来完成这个项目.我们必须向教授们展示我们能够取得的成就.(但是这个应用程序不会被部署或使用.它只是一个展示.)

我将为学生创建一个Web应用程序,一个日历/计划器.他们可以跟踪他们的课程和家庭作业,空闲时间等.这是我想要实现的截图:

Web应用程序页面

我已经抛出了滑块,并通过使用下一个/上一个按钮的AJAX请求来修复它.您可以在此处查看最新版本的网站.

但是,我对我的代码不满意.我对我正在做的事情不满意.说实话,我很困惑.我绝望地感到困惑.

我读过关于CodeIgniter的博客,书籍,网站,关于MVC模型; 我对PHP有相当不错的知识,我很快就选择了这个框架.但仍然如此困惑.

我开始编写登录表单.都好.我有一个登录控制器,带有一个index()函数,一个go()专注于表单验证(使用form_validation库)和设置会话的函数.它通过AJAX处理错误消息,并通过我的登录模型与数据库通信.我认为这很好地遵循了MVC模式.

实际的"计划者"页面是一个完全不同的故事.我想知道的第一件事是我是否可以在视图中使用/调用函数.如果我遵循MVC指南,我会说我做不到.所以我现在正在做的是将所有数据堆叠在我的控制器中的$ data数组中,然后通过jQuery AJAX调用将这些数据直接回显到我的网页中.

这提出了我的第一个,一个荒谬简单的问题.这个可以吗?我主要担心的当然是没有启用javascript的用户; 应用程序根本不起作用.我已经阅读过关于优雅降级和渐进增强的内容,但我不确定这个应用程序是否可以在没有JS的情况下使用.

另一件我不确定的事情(AJAX明智)是我在$(document).ready上有两个不同的AJAX调用,然后当用户点击不同的元素时又有四个.令我困扰的是,jQuery .html()实际上并没有将内容放在我的html标签内(当我查看源代码时).

顶部的天数列表由一个名为的函数生成init_days().我使用$(document).ready()AJAX调用之一填充列表.它工作正常,但功能是一个巨大的混乱.在控制器中,我创建一个数组$data并将整个列表(包含html标签)回显到$data['calendar']; 然后我直接将其输出到<ul>标签中:

    // populate initial calendar
    $.ajax(
    {
        type: "POST",
        url: "/planner/init_days",
        success: function(data){
            $("#days_loader").hide();
            $(".month").prepend(data['month_name'] + " " + current_year);
            $("#day_list").html(data['calendar']).fadeIn();
        }
    });
Run Code Online (Sandbox Code Playgroud)

但是,当使用下一个和上一个按钮时,我会调用相同的功能,只需提供一个data:选项即可提交新月(如果需要,还可以提交年份).这对我来说似乎有点多余; 将(几乎)相同的代码放三次.不知道如何解决这个问题.

我现在被困住的主要问题是这些日子之下的部分.我有那些"祸好,4月20日"的表格标题,但在那之下,我需要得到我的实际事件.我不确定创建此功能的最佳方法是什么.我应该把它放在桌子上吗?但那我怎么把某些事件放在正确的地方呢?目前,我所有的功能都是将某一天的所有事件输出到数组中的函数,如下所示:

Array ( [0] => Array ( [id] => 1 [title] => Test Event [description] => Dit is …
Run Code Online (Sandbox Code Playgroud)

php jquery codeigniter

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

CodeIgniter $ this-> load-> vars()

我想知道$this->load->vars()CodeIgniter 是如何工作的.文档对此非常模糊.

我有以下代码:

    $init = $this->init->set();

    $this->load->view('include/header', $init);
    $this->load->view('include/nav');

    $dates = $this->planner_model->create_date_list();
    $this->load->view('planner/dates_content', $dates);

    $detail = $this->planner_model->create_detail_list();
    $this->load->view('planner/detail_content', $detail);


    $this->load->view('include/footer');
Run Code Online (Sandbox Code Playgroud)

但是,我$datesdetail_content视图中也需要数组.我试图加载它$this->load->vars()并希望它会附加到$detail数组,因为CI文档声明如下:

您可以多次调用此函数.数据被缓存并合并到一个数组中以转换为变量.

如果我这样做会有用$detail['dates'] = $dates;吗?它会附加$dates数组$detail['dates']吗?

提前致谢.

php codeigniter

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

计算DB中的行数

我正在关注CI/jQuery的分页教程.在本教程中,他们通过执行以下操作获得总行数:

$config['total_rows'] = $this->db->count_all('tblUsers');

他们获得定义分页的用户总数.但是,他们得到了所有用户.在我的应用程序中,我只需要为其分配了特定值的用户,在本例中为"role".

我只需要role = 1我的数据库中的用户.

我已经尝试了一些->count()(来自CI的Active Record DB类)或尝试count()检查一个数组有多少'行',但我无法得到我需要的结果.我也试过做一个常规的查询:select count(*) from tblusers where role = 1然后以某种方式试图抓住它返回了多少,但唉.

$config['total_row'] = $this->db->query("select count(*) from tblusers where role = '1'")->result_array();
Run Code Online (Sandbox Code Playgroud)

给我以下数组:

Array ( [0] => Array ( [count(*)] => 2 ) )

但是,我似乎无法读出count(*)索引..

Message: Undefined index: count(*)

我希望这是有道理的.基本上我正在尝试做类似的事情..

$this->db->where('role', 1)->get('tblUsers')->count()

可悲的是,这不起作用:D

提前致谢.任何帮助表示赞赏.

php mysql activerecord codeigniter codeigniter-2

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

使用Rspec测试presence和belongs_to

我正在尝试学习如何使用Rspec进行测试.

目前我有一个Item类的规范:

require 'spec_helper'

describe Item do
  it { should belong_to :list }

  before(:each) do
    @item = FactoryGirl.create(:item)
  end

  subject { @item }

  it { should respond_to :name }
  it { should validate_presence_of :name }

end
Run Code Online (Sandbox Code Playgroud)

不过,我有几个问题.

it { should validate_presence_of :name }一样的文字:

describe "when name is not present" do
  before { @item.name = "" }
  it { should_not be_valid }
end
Run Code Online (Sandbox Code Playgroud)

或两者之间是否存在重大差异?

我也想知道是否it { should belong_to :list }值得在规范中写作,或者是否有更好的方法.

我也知道我可以做@item = FactoryGirl.build(:item)FactoryGirl.create(:item).create是否将项目保存到测试数据库并且构建不存在?或者我在这里感到困惑.我什么时候应该使用哪个? …

tdd rspec ruby-on-rails ruby-on-rails-3 factory-bot

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

Obj-C计算器 - 弧度到度

我一直在看斯坦福CS193P讲座,我一直在研究作业计算器.我很轻松地完成了第一项任务,现在我正在努力为任务做额外的工作.然而,我被困在一个额外的信用问题上:

实现一个用户界面,用于选择sin()或cos()的操作数是否被视为弧度或度数.当你在C库中调用sin(x)时,x被假定为弧度(即0到2π围绕圆圈一次),但是用户可能想要输入180并按下sin按钮并得到0而不是-0.8012 (这是180弧度的正弦).您可以使用UIButton并在每次按下UIButton时切换titleLabel的文本,但更好的方法是查看是否可以通过阅读文档来了解如何使用UISwitch(如果你敢!).

我实现了一个UISwitch并将其作为IBOutlet连接起来.当我执行'操作'时,我检查开关是打开还是关闭,并将其传递给我的模型以及要执行的操作.在我的罪和案件中,我做了以下事情:

else if ([operation isEqual:@"sin"])
{
    if (radians) {
        operand = sin(operand);
    }
    else {
        operand = sin(operand) * (180 / M_PI);
    }

}
// similar for cos
Run Code Online (Sandbox Code Playgroud)

如果radians(这是BOOL:YES =弧度,没有=度),那么我通常执行操作; 如果用户将开关置于'度',我想以度为单位返回值,因为赋值状态:用户可能想要输入180并按下sin按钮并获得0而不是-0.8012(这是180的正弦值)弧度).

但是,此代码并不完全有效.当我将开关置于度数时,sin 180它会返回更多或更少的值-45.那里出了点问题; 而且我不确定是什么.我已经查找了如何进行转换,我认为我做得对,但显然没有.

我意识到这可能更适合math.stackexchange,但由于我想发布一些代码,我把它放在这里.有人可以就实施此方法的最佳方式提供一些建议吗?我已经有一段时间了,因为我甚至使用过cos或sin,弧度和度数.

谢谢!

trigonometry objective-c ios

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