小编mor*_*ner的帖子

PhoneGap - 后退按钮上的android退出

我正在尝试使用jquery mobile和cordova编写RSS阅读器.我的RSS阅读器由3页组成(在同一HTML文档中:第1页,第2页,第3页).我试图覆盖(硬件)后退按钮行为,因此它将退出程序.为了检查我在项目设置中没有犯任何错误,我使用了PhoneGap示例项目并将其加载到Eclipse中.每个示例函数都有效,所以我将index.html和res文件夹移动到phonegap示例.在我的index.html中,我导入了以下脚本:

<script src="res/jquery-1.7.1.min.js"></script>
<script src="res/jquery.mobile-1.1.1.min.js"></script>
<script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script>
<script type="text/javascript" charset="utf-8" src="main.js"></script>
Run Code Online (Sandbox Code Playgroud)

和我的main.js文件看起来像这样:

document.addEventListener("backbutton", function(e){
if($.mobile.activePage.is('#homepage')){
    e.preventDefault();
    navigator.app.exitApp();
}
else {
    navigator.app.backHistory()
}
}, false);
Run Code Online (Sandbox Code Playgroud)

您可以在第一个代码示例中检查我的脚本版本.关于如何让代码工作的任何想法,当我按下我的Xperia Arc上的后退按钮时,它会简单地退出应用程序?如果需要,我可以上传我的完整代码.

编辑:我已经测试了我的Android手机上的phonegap(cordova)哔声功能,它的工作方式,所以这没有什么与坏脚本实现.它必须是main.js文件中的内容.也许与jquerymobile后退按钮功能和phonegap后退按钮功能有一些兼容性问题.

back-button cordova

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

如何使用jasmine来测试需要很长时间才能响应的异步函数?

我正在使用一个函数从webapi获取数据.基本使用$.ajax.

我现在用waits()这样测试它:

describe('xxxxxxxxxxxxxxxxxxxxx', function () {
  var r;
  it('fetchFilter', function () {
    runs(function () {
      model.fetch(opts)
      .done(function(data) {
        r = data;
      });
    });

    waits(2000);

    runs(function () {
      expect(r[0].gender).toBeDefined();
    });
  });
});
Run Code Online (Sandbox Code Playgroud)

问题是:

  1. 我们无法保证能够waits(2000)很好地完成工作.由于各种原因(网络连接,api it self的算法效率等),我可能要waits(5000)或者更多,或者对于某些模型waits(500)来说已经足够了.最令人讨厌的是它完全失控.
  2. 很多waits()因为测试规范浪费了很多时间等待.运行整个套件的时间太长,无法接受.

有没有best practice做过那种事情?

PS:我知道单元测试不应该应用于某些依赖webapi或数据库的函数.但我正在使用单页js-heavy-webapp.数据获取过程与我如何使用js模型一样重要.

javascript jasmine

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

使用javascript验证html中的输入文本字段

<script type='text/javascript'>   
function required()  
{
    var empt = document.forms["form1"]["Name"].value; 
    if (empt == "")  
    {  
        alert("Please input a Value");  
        return false;  
    }  
}  
</script> 

<form name="form1" method="" action="">
<input type="text" name="name" value="Name"/><br />
<input type="text" name="address line1" value="Address Line 1"/><br />
Run Code Online (Sandbox Code Playgroud)

我有多个输入文本字段,每个字段都有自己的默认值。在提交表单之前,我必须验证是否已填写所有字段。到目前为止,由于不同的文本框具有不同的默认值,我让 javascript 来检查 null。如何编写 javascript 来验证用户是否已输入数据?我的意思是,脚本必须确定输入数据不是默认值和空值。

html javascript validation form-submit

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

面对问题对象IE 8中的所需错误和灯箱单独在IE 8和IE 7中不起作用

我实现了上传的图像显示在网站上.对于未正确上传的图像,意味着我更换了错误图像?当我加载网站时,我正面临着这个问题error image not define,而且灯箱正在加载chrome和firefox,但它没有加载到IE中,只显示黑色背景.这是我的代码,用于显示错误图像和从Web服务上传图像.

PHP代码:

foreach(object_2_array($ans->answerDocumentList) as $document){
    if ($document->documentHttpUrl!= ''):
        $document_name_explode = explode('.',$document->documentName);
        $file_type = trim($document_name_explode[1]);?>

    <div class="documentation_class" <?php if($k%2==0){?> style="float:none;margin-left:0px;" <?php }else{ ?> style="float:left;"<?php  } ?>>
        <?php if(($file_type!="") &&($file_type=="png" || $file_type=="jpg" || $file_type=="jpeg" || $file_type=="gif")){ ?>
        <a rel="lightbox[document]" href="<?php echo stripcslashes($document->documentHttpUrl); ?>">
            <img alt="<?php echo stripcslashes($document->documentName); ?>" src="<?php echo APP_FORUM_URL;?>/images/ajax-load.gif" dataimage="<?php echo stripcslashes($document->documentHttpUrl); ?>" class="document_image" style="max-width:644px !important;" onerror='errorImage("<?php echo RESOURCE_URL_BASE;?>",this);' border="0"  />
        </a>
        <br/>
        <?php } else{
            echo $document->documentName;
        } ?>

        <div class="question_float_left download_link">
            <a href="<?php …
Run Code Online (Sandbox Code Playgroud)

html javascript php jquery lightbox2

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

我可以在asp.net-mvc 3中的@ Ajax.Actionlink中传递一个Javascript变量吗?

我有以下Javascript代码:

var idJS;

$('.disp').click(function () { 
    idJS = $(this).attr("id");   
})
Run Code Online (Sandbox Code Playgroud)

然后我想这样做:

@Ajax.ActionLink("myMethod", "myMethod", "HomeController", new { id = idJS },
  new AjaxOptions() { HttpMethod = "Get", UpdateTargetId = "myDiv" })
Run Code Online (Sandbox Code Playgroud)

是否有可能做到这一点?

javascript ajax asp.net-mvc asp.net-mvc-3

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

link_to =>未定义的方法`symbolize_keys!'中的回形针图像 对于#<Design:0x00000002dfa5f0>

我有以下代码:

<% if design.avatar.file? %>
    <%= link_to image_tag design.avatar.url(:thumb), design %>
<% else %>
    <%= link_to image, design %>
<% end%>
Run Code Online (Sandbox Code Playgroud)

我得到这个错误:

undefined method `symbolize_keys!' for #<Design:0x00000002dfa5f0>
Run Code Online (Sandbox Code Playgroud)

但是,如果我从第一个链接中删除设计部分,请保留以下代码:

<% if design.avatar.file? %>
    <%= link_to image_tag design.avatar.url(:thumb) %>
<% else %>
    <%= link_to image, design %>
<% end%>
Run Code Online (Sandbox Code Playgroud)

有用!显然首先是一个空链接,但呈现页面.

image_helper.rb中定义了image变量,如下所示:

def image
    image = image_tag("image.jpg", :alt => %(No image available), :class => "round")
end
Run Code Online (Sandbox Code Playgroud)

我显然在这里遗漏了一些东西......

ruby-on-rails

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

jQuery触发器('click')不能与Jasmine-jquery一起使用

这是我的测试代码:

describe("Login", function(){
    beforeEach(function(){
        loadFixtures('login-fixture.html');
    })

    it("should enable the button when checking 'remember password'", function(){
        $('#remember').trigger('click');
        expect($('#keepIn')).not.toBeDisabled();
    });
});
Run Code Online (Sandbox Code Playgroud)

这是我的生产代码:

$(document).ready(function(){

    $('#remember').click(function(e) {
        if($('#remember').is(':checked'))
        {
            $('#keepIn').removeAttr('disabled');
        }
    });

});
Run Code Online (Sandbox Code Playgroud)

这不起作用,生产代码永远不会被调用.我已经在触发事件之前和之后发出警报,并且在触发之后选中了复选框,但是没有调用.click函数.

有关为什么会发生这种情况的任何想法?

javascript jquery jasmine jasmine-jquery

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

变量名称被添加而不是它的值,javascript

向JavaScript对象添加值时遇到问题:要添加的值是一key,value对.这是样本:

//JavaScript object

var cart=new Object();

function add()
{
  var rating="1"
  var category="somecat";
  var user="user1";

   if(cart[user]==null)

        cart[user]={category:rating};

   else

         cart[user][category]=rating;
 }
Run Code Online (Sandbox Code Playgroud)

我期待的是,如果user存在于cart对象中,那么他的特定值应该被替换,如果user不存在则应该添加新用户和类别.

代码在user已经存在时工作正常.问题是,当我添加一个新元素时,cart[user]={category:rating}它将变量名称添加为键即类别,而不是其中的值("somecat").

有没有办法使用json,jquery或javascript本身?

有没有办法在变量中赋值?

javascript jquery json

0
推荐指数
1
解决办法
996
查看次数

如何在表单中包含的表中设置第一个<td>元素的样式

说我有这个表格:

<form>
  <table>
    <tbody>
      <tr>
        <td style="font-family : Arial">
          Sample text
        </td>
      </tr>
    </tbody>
  </table>
</form>
Run Code Online (Sandbox Code Playgroud)

我怎么能添加一个新的样式添加到这个表单的第一个,因为我没有它的id,这是我到目前为止:

form table tbody tr td{
    font-family : Arial;
    font-weight: bold;
}
Run Code Online (Sandbox Code Playgroud)

javascript css jquery

0
推荐指数
1
解决办法
1211
查看次数