小编Shi*_*tya的帖子

有条件地添加到jQuery .when

当我的页面加载时,我会进行一次AJAX调用,然后根据页面上的内容进行另一次调用.我想在两者结束时调用一个函数; 我该怎么做?

var dfd = $.when( $.ajax(...) );

if( $("type").val() == "something" ) {
  dfd.when( $.ajax(...) );
}

dfd.then(function() { 
   // final code
});
Run Code Online (Sandbox Code Playgroud)

我找不到更多关于添加$.when "conditionally"或"稍后"的内容,因为这些搜索词太接近于承诺本身的原始目的,所以我只是得到了标准用法$.when(a, b).then(c)

谢谢

jquery promise jquery-deferred .when

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

循环遍历所有div并更新元素

我有一个包含10个元素的数组,在页面加载时有5个div,每个都将从此数组中获取一个值,然后使用setInterval()div的值将从其余数组元素每1秒更新一次.

问题是我只想使用一个foreach循环 ,值从#8开始更新而不是从#6更新,并且最后两个div不会更新.

小提琴:http://jsfiddle.net/90h7045b/

var data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
  first = data.slice(0, 5),
  second = data.slice(5),
  count = 0;

//update first 5 on page load
$.each($('.wrap'), function(i) {
  $(this).find('.title').html(first[i]);
});

$('#container .wrap:first').addClass('current');

//it does not work with `.wrap`
$.each($('#container'), function() {
  (function($set) {
    var interv = setInterval(function() {
      count++;
      var $cur = $set.find('.current');
      $cur.removeClass('current');

      $cur.find('.title').html(second[count]);
      var $next = $cur.next().length ? $cur.next() : $set.children().eq(0);
      $next.addClass('current');
      if(count …
Run Code Online (Sandbox Code Playgroud)

javascript arrays jquery

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

JavaScript 不从缓存加载文件

我有这个函数可以从特定位置读取文本文件:

<html>
  <head>
    <script>
      function readTextFile(file){
        var out_text=''
        var rawFile = new XMLHttpRequest();
        rawFile.open("GET", file, false);
        rawFile.onreadystatechange = function (){
          if(rawFile.readyState === 4){
            if(rawFile.status === 200 || rawFile.status == 0){
              var allText = rawFile.responseText;
              out_text=allText;
            }
          }
        }
        rawFile.send(null);
        return out_text;
      }
    </script>
  </head>
  <body>
    <div id="file_txt"></div>
    <script>
      txt = readTextFile('http://arbsq.net/dchampolu/champolu_data.txt');
      document.getElementById("file_txt").innerHTML=txt;
    </script>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

问题是我想读取一个不断变化的文本文件: http://arbsq.net/dchampolu/champolu_data.txt

当我运行此函数一次时,浏览器会缓存文本文件,然后每次运行代码时,它只会获取缓存的版本,而不是更新的版本。

我总是可以告诉用户清理这个缓存和类似的东西,但是有没有一种方法可以通过 JavaScript 或 jQuery 强制浏览器仅使用文件的当前版本,而不是缓存版本?

javascript jquery caching

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

单击模态上的按钮,当按下回车键时,当模态显示时

我的代码中有一个名为myModal. 仅当按下enter键盘上的 时显示模态,我才希望单击模态上的按钮。我有以下代码,

HTML

<div data-backdrop="static" data-keyboard="false" class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header"></div>
      <div class="modal-body">
        <table>                     
          <tr>
            <td>Username</td>
            <td style="padding:5px;">
              <input type="text" id="hostUsername" name="hostUsername" value="root" readonly="readonly">
            </td>
          </tr>    
          <tr>
            <td>Password</td>
            <td style="padding:5px;">
              <input type="password" id="hostPassword" name="hostPassword" value="KJFDKFGS">
            </td>
          </tr>
        </table>                    
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" onclick="uncheck_host()" >Close</button>
        <button type="button" class="btn btn-primary" id="getDataBt" onclick="getData()">Save changes</button>
      </div>
    </div>
  </div>
</div>  
Run Code Online (Sandbox Code Playgroud)

JavaScript

$('#myModal').on('shown.bs.modal', function (event) {                  
  alert("BEFORE ENTER clicked");
  var …
Run Code Online (Sandbox Code Playgroud)

javascript jquery modal-dialog bootstrap-modal

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

如何用jQuery选择以前的选项?

我有一个带有select元素的html页面,如下所示:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
<select id="ExSelect">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
  <option>6</option>
  <option>7</option>
  <option>8</option>
  <option>9</option>
  <option>10</option>
 </select>
  <br>
  <br>
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
  <button onclick="ToTheNext()" id="btnext">Next</button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我在OnClick按钮上使用这个简单的功能将所选项目更改为下拉列表的下一个选项:

function ToTheNext()
{
    $('#ExSelect option:selected').next().attr('selected', 'selected');
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何使用Vanilla JavaScript或将所选项目更改为此标记的上一个选项jQuery

Jsbin示例:https://jsbin.com/nuyeduf/edit html,js,output

html javascript jquery

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

如何从Model创建数组?

我是javascript的新手,我有这个代码,我应该传递或转换为jQuery.我尝试了一些代码,但它不起作用.我怎么能正确地做到这一点?

这是它应该是什么样子:

<script>
  $('#calendar').fullCalendar({
    defaultDate: '2017-10-12',
    editable: true,
    eventLimit: true, // allow "more" link when too many events
    events: [
        {
            title: 'Juan Dela Cruz',
            start: '2017-10-01T10:30:00',

        },
        {
            title: 'Juan Dela Cruz',
            start: '2017-10-12T10:30:00',

        },
        {
            title: 'Juan Dela Cruz',
            start: '2017-10-27T12:00:00'
        }
    ]
});
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的:

<script>
var x = [];
@foreach(var item in Model)
{
    @:x.push(title='@Html.DisplayFor(x=>item.Patient.LastName)', start='@Html.DisplayFor(x=>item.ScheduleDate)')
}
$('#calendar').fullCalendar({
    defaultDate: '2017-10-12',
    editable: true,
    eventLimit: true, // allow "more" link when too many events
    events: x
});
Run Code Online (Sandbox Code Playgroud)

javascript c# asp.net-mvc jquery razor

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

替换JavaScript中的中间n个字符

我有一个电话号码,我想像审查表格一样显示它.例如,我有:+923451234567

我想显示它像: +923*******67

将使用Str.replace函数,但如何:

var str = '+923451234567'
str.replace(i_Dont_Know_What, '*');
Run Code Online (Sandbox Code Playgroud)

所以在这种情况下字符串包含13个字符.我想用"*"替换第5-11个字符

我在某个地方找到了这个,但这不是我想要的.

var str = "name(replace these parenthesis by @)domain.com";
var patt1 = /\(.*@\)/i;
document.write(str.replace(patt1,"@"));
Run Code Online (Sandbox Code Playgroud)

我怎么做到这一点?

javascript jquery

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

如何从JSON对象获取简单数据

如何从此对象获取值?

var descipt = "{'type':'" + $('#medi-type option:selected').val() +"',"+
        "'weight':" + $('#weight').val() +","+
        "'weight-type':'" + $('#weight-type option:selected').val() +"',"+
        "'dose':'" + $('#medicine-dose').val() +"',"+
        "'dose-type':'" + $('#dose-type option:selected').val() +"',"+
        "'day-time':'" + morning +"',"+
        "'noon-time':'" + noon +"',"+
        "'night-time':'" + night +"',"+
        "'after':'" + after +"',"+
        "'before':'" + before +"'}";

alert(descipt.weight);
Run Code Online (Sandbox Code Playgroud)

如何从物体上获得重量.

html javascript jquery json

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

HTML 标题属性仅显示第一个单词

我在 jQuery 中使用 title 属性。

createAlert: function () {            
  return '<img id="img" class="img pull-left" src="/Content/img/demo_16px.png" tabindex="0" style="outline: none;" title=' + demo.rawData + '></span>';
}
Run Code Online (Sandbox Code Playgroud)

这里在这段代码中,标题包含动态数据(demo.rawData Contain text = 'This is my code')

但是当我在浏览器中悬停标题时,它只显示这个(即只显示第一个词)

谁能告诉我我做错了什么。?

html javascript css jquery

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

Imagick 在指定区域的图像上居中放置文本

我正在使用 Imagick 库在图像上添加文本。我已经在图像上定义了区域,from x:280 to x:400 我正在该区域中写入文本,并且我想将该文本对齐在居中文本 x:1 和 x:400 中的以下代码的中心

$draw = new ImagickDraw();
$draw->setFillColor('white');
$draw->setFont($tffFile);

$draw->setTextAlignment(Imagick::ALIGN_CENTER);
$draw->setFontSize( 14 );
$image->annotateImage($draw, 280, 80, 0, 'Hey there');
Run Code Online (Sandbox Code Playgroud)

php imagick

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