小编Mai*_*lii的帖子

jQuery滚动到元素

我有这个input元素:

<input type="text" class="textfield" value="" id="subject" name="subject">
Run Code Online (Sandbox Code Playgroud)

然后我有一些其他元素,如其他文本输入,textareas等.

当用户点击它input#subject,页面应滚动到页面的最后一个元素,并带有漂亮的动画.它应该是一个滚动到底部而不是顶部.

页面的最后一项是一个submit按钮,其中包含#submit:

<input type="submit" class="submit" id="submit" name="submit" value="Ok, Done.">
Run Code Online (Sandbox Code Playgroud)

动画不应该太快,应该是流畅的.

我正在运行最新的jQuery版本.我更喜欢不安装任何插件,但使用默认的jQuery功能来实现这一点.

javascript jquery

2196
推荐指数
19
解决办法
236万
查看次数

等到所有jQuery Ajax请求都完成了?

如何使函数等到所有jQuery Ajax请求在另一个函数内完成?

简而言之,我需要等待所有Ajax请求在执行下一个之前完成.但是怎么样?

javascript ajax jquery

644
推荐指数
8
解决办法
51万
查看次数

使用jQuery清除<input type ='file'/>

是否可以<input type='file' />使用jQuery 清除控件值?我尝试过以下方法:

$('#control').attr({ value: '' }); 
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

html javascript forms file-io jquery

542
推荐指数
13
解决办法
44万
查看次数

选择元素中的文本(类似于用鼠标突出显示)

我希望让用户单击一个链接,然后在另一个元素(不是输入)中选择HTML文本.

通过"选择",我的意思与通过将鼠标拖过它来选择文本的方式相同.这是一个研究的熊,因为每个人都在谈论其他术语中的"选择"或"突出".

这可能吗?我的代码到目前为止:

HTML:

<a href="javascript:" onclick="SelectText('xhtml-code')">Select Code</a>
<code id="xhtml-code">Some Code here </code>
Run Code Online (Sandbox Code Playgroud)

JS:

function SelectText(element) {
    $("#" + element).select();
}
Run Code Online (Sandbox Code Playgroud)

我错过了一些明显的东西吗?

javascript jquery

408
推荐指数
8
解决办法
29万
查看次数

jQuery Validate插件 - 如何创建简单的自定义规则?

如何使用addMethod不使用正则表达式的jQuery Validate插件(使用)创建简单的自定义规则?

例如,只有在检查了一组复选框中的至少一个复选框时,哪个函数才会创建一个验证规则?

javascript jquery jquery-validate

340
推荐指数
6
解决办法
30万
查看次数

是应该将所有jquery事件绑定到$(文档)?

这是来自哪里

当我第一次学习jQuery时,我通常会附加这样的事件:

$('.my-widget a').click(function() {
    $(this).toggleClass('active');
});
Run Code Online (Sandbox Code Playgroud)

在了解了有关选择器速度和事件委托的更多信息之后,我在几个地方读到"jQuery事件委托将使您的代码更快".所以我开始编写这样的代码:

$('.my-widget').on('click','a',function() {
    $(this).toggleClass('active');
});
Run Code Online (Sandbox Code Playgroud)

这也是复制已弃用的.live()事件行为的推荐方法.这对我很重要,因为我的很多网站都在动态添加/删除小部件.上面的行为与.live()的行为完全不同,因为只有添加到现有容器".my-widget"的元素才会获得行为.如果我在代码运行后动态添加另一个html块,那么这些元素将不会获取绑定到它们的事件.像这样:

setTimeout(function() {
    $('body').append('<div class="my-widget"><a>Click does nothing</a></div>');
}, 1000);
Run Code Online (Sandbox Code Playgroud)


我想要实现的目标:

  1. .live()的旧行为//意味着将事件附加到尚未存在的元素
  2. .on()的好处
  3. 绑定事件的最快性能
  4. 管理事件的简单方法

我现在附上所有这样的事件:

$(document).on('click.my-widget-namespace', '.my-widget a', function() {
    $(this).toggleClass('active');
});
Run Code Online (Sandbox Code Playgroud)

这似乎符合我的所有目标.(是的,因为某种原因它在IE中速度较慢,不知道为什么?)它很快,因为只有一个事件与单个元素相关联,而二级选择器仅在事件发生时进行评估(如果这里错误,请纠正我).命名空间非常棒,因为它可以更容易地切换事件监听器.

我的解决方案/问题

所以我开始认为jQuery事件应该始终绑定到$(document).
你有什么理由不想这样做吗?
这可算是最佳做法吗?如果没有,为什么?

如果您已经阅读了这一切,谢谢.我感谢任何/所有反馈/见解.

假设:

  1. 使用支持.on()//至少1.7版的jQuery
  2. 您希望将事件添加到动态添加的内容中

读数/例子:

  1. http://24ways.org/2011/your-jquery-now-with-less-suck
  2. http://brandonaaron.net/blog/2010/03/4/event-delegation-with-jquery
  3. http://www.jasonbuckboyer.com/playground/speed/speed.html
  4. http://api.jquery.com/on/

javascript jquery jquery-selectors jquery-on

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

在Ajax提交之前进行Bootstrap 4客户端验证

我有一个表格(请参阅下面的表格)。我们在项目上遵循引导程序4,因此,我希望尽可能多地重用,并且不要在不需要的地方编写自己的代码。

当用户按下Submit按钮时,我执行AJAX发布请求,作为响应,我获得了一些信息的JSON对象。基于该响应,我必须执行一些逻辑。

<form name="signin" class="js-form-submit needs-validation" action="/signin">
  <div class="form-group">
    <label for="username">User Name</label>
    <input class="form-control" id="username" name="username" autofocus>
  </div>
  <div class="form-group">
    <label for="password">Password</label>
    <input type="password" class="form-control" id="password" name="password" >
  </div>
  <button type="submit" class="btn btn-primary mb-2">Submit/button>
</form>
Run Code Online (Sandbox Code Playgroud)

现在,我要进行客户端验证(如果可能,我更喜欢使用引导程序)。他们有一个示例,但它适用于普通提交,但不适用于AJAX,我很好奇如何在AJAX调用之前执行bootstrap 4客户端验证?

// Example starter JavaScript for disabling form submissions if there are invalid fields
(function() {
  'use strict';
  window.addEventListener('load', function() {
    // Fetch all the forms we want to apply custom Bootstrap validation styles to
    var forms = document.getElementsByClassName('needs-validation');
    // Loop over them and …
Run Code Online (Sandbox Code Playgroud)

javascript validation jquery bootstrap-4

6
推荐指数
1
解决办法
4713
查看次数

Spring WebFlux:从控制器提供文件

来自.NET和Node我真的很难弄清楚如何将这个阻塞的MVC控制器转移到一个非阻塞的WebFlux注释控制器?我已经理解了这些概念,但未能找到正确的异步Java IO方法(我期望返回Flux或Mono).

@RestController
@RequestMapping("/files")
public class FileController {

    @GetMapping("/{fileName}")
    public void getFile(@PathVariable String fileName, HttpServletResponse response) {
        try {
            File file = new File(fileName);
            InputStream in = new java.io.FileInputStream(file);
            FileCopyUtils.copy(in, response.getOutputStream());
            response.flushBuffer();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java spring spring-boot spring-webflux

6
推荐指数
1
解决办法
3928
查看次数

pyenv:构建失败(Fedora 34 使用 python-build 20180424)

我需要帮助通过 pyenv 安装 python

$ pyenv -v
pyenv 1.2.27
Run Code Online (Sandbox Code Playgroud)

我尝试安装3.6.8版本

$ pyenv install 3.6.8
Run Code Online (Sandbox Code Playgroud)

我收到错误

下载Python-3.6.8.tar.xz... -> https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz安装Python-3.6.8.. ./home/dn121283mvp1/.pyenv/plugins/python-build/bin/python-build:第 1804 行:355307 分段错误(核心已转储)“$PYTHON_BIN”-s -m Ensurepip ${ensurepip_opts} > /dev/null 2 >&1 从https://bootstrap.pypa.io/get-pip.py安装 pip ...。/home/dn121283mvp1/.pyenv/plugins/python-build/bin/python-build:第 1785 行:355338 分段错误(核心转储)“${PYTHON_BIN}”-s“${get_pip}”${GET_PIP_OPTS} 1> &4 2>&1 错误:无法通过 get-pip.py 安装 pip

构建失败(Fedora 34 使用 python-build 20180424)

检查或清理 /tmp/python-build.20210506064823.343245 处的工作树 结果记录到 /tmp/python-build.20210506064823.343245.log

最后 10 行日志: install|*) Ensurepip="" ;; \ 经济和社会委员会;\ ./python -E -m Ensurepip \ $ensurepip --root=/ ; \ fi 查看链接:/tmp/tmp4a3uh2fu 收集 setuptools 收集 pip 安装收集的软件包:setuptools,pip 已成功安装 …

python fedora pyenv

6
推荐指数
1
解决办法
3114
查看次数

JQuery - 只打开一个元素

我有这样的情况:

<div>
    <span id="x1"></span>
    <span id="x2"></span>
    <span id="x3"></span>
</div>
Run Code Online (Sandbox Code Playgroud)

而我正试图得到这样的东西:

<div>
    <span id="x1"></span>
</div>
<span id="x2"></span>
<div>
    <span id="x3"></span>
</div>
Run Code Online (Sandbox Code Playgroud)

我尝试使用这样的unwrap()函数来做到这一点:

$('#x2').unwrap();  
Run Code Online (Sandbox Code Playgroud)

但是这个功能删除了整个<div>.那我怎么能用jQuery/JavaScript呢?感谢帮助.

html javascript jquery

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