Tag: javascript

点击事件按钮是否发送图标作为目标?

我有一个非常类似的问题: “Jquery’点击’当按钮上没有触发按钮时”但该post的分辨率并没有为我提供解决方案,所以我认为可能会发生一些不同的事情。 关键问题是我有一个带有图标的按钮。 当我点击按钮(例如文本)时,事件目标是按钮元素; 但是当我点击图标时,事件目标就是图标对象。 不幸的是,这非常烦人,因为我将数据值存储在我想要访问的按钮上。 这是HTML: Up Vote! Down Vote! 这是Javascript: function sendVote(event) { var $btn = $(event.target); console.log(parseInt($btn.data(‘vote’)); console.log($btn.prop(‘tagName’)); } $(‘body’).on(‘click’, ‘button.vote-button’, sendVote); 单击文本(“Up Vote!”或“Down Vote!”)会产生以下控制台输出: 1 BUTTON -1 BUTTON 单击图标(等)将导致以下控制台输出: NaN I NaN I 即使我已经使用选择器“button.vote-button”在元素上注册了句柄。 有谁知道为什么会这样? 我不想必须为图标提供数据属性。

正则表达式允许使用字母数字, – ,_和空格

我正在寻找一个正则表达式,允许在JavaScript / jQuery中使用字母数字字符, – ,_或空格。 我试过谷歌搜索,但无法找到。 任何人都可以帮我解决这个问题吗? 提前致谢。

自下而上的jQuery砌体

有谁知道如何从下往上制作jQuery砌体堆栈? 我写了一些基本的JS来自下而上堆叠东西,但是它不能像在最短的列上堆叠下一块砖和跨越多列的砖块那样做一些粗糙的东西。 由于我对Math不熟悉,查看源代码只会让我头晕目眩。 有人想试试吗?

如何将参数传递给jQuery $ .getJSON回调方法?

我正在尝试使用jQuery通过Ajax/$.getJSON调用一些自定义API。 我正在尝试将自定义值传递给Ajax回调方法,但该值未被传递并且实际上被覆盖。 这是我的代码: var locationType = 3; var url = ‘blah blah blah’ + ‘&locationType=’ + locationType; $(“#loading_status”).show(); $.getJSON(url, null, function(results, locationType) { searchResults(results, locationType) }); 在使用AJAX调用URL之前, locationType的值为3 。 但是在调用成功返回数据之后, locationType的值现在success 。 这是因为回调的方法签名是: callback(data,textStatus)如果请求成功则执行的回调函数。 如何将一个或多个参数传递给回调方法?

特定键的keydown + keyup事件

我正试图在按下某些键时使背景颜色发生变化。 例如,当按住’r’键时,背景应为红色。 当’r’键不再被按下时,背景应默认为白色。 $(document).ready(function () { $(‘body’).keydown(function(e){ if(e.keyCode == 114){ $(this).css({‘background’:’red’}); } if(e.keyCode == 121){ $(this).css({‘background’:’yellow’}); } }); $(‘body’).keypress(function(e){ if(e.keyCode == 114){ $(this).css({‘background’:’red’}); } if(e.keyCode == 121){ $(this).css({‘background’:’yellow’}); } }); $(‘body’).keyup(function(e){ if(e.keyCode == 114){ $(this).css({‘background’:’white’}); } if(e.keyCode == 121){ $(this).css({‘background’:’white’}); } }); }); 我遇到的问题是密钥不是专门针对每个密钥工作的。 $(‘body’).keyup(function(e){ $(this).css({‘background’:’white’}); }); 我知道如果我完全从keyup中删除if条件,那么它将按照我说的我想要的方式行事 – 但我希望以后能够使用特定键的keyup做不同的事情。 例如,当只释放’b’键时,它可能会在屏幕上显示“你刚刚发布了b键!”。 如何跟踪特定键的keydown和keyup事件,并为每个键发生不同的事情? 我知道这也不是很有组织(我对这些东西很新)所以如果有一个完全不同的更好的方法来做这个…

使用XMLHttpRequest上传大文件时的进度条

我正在尝试使用XMLHttpRequest和file.slice将一些大文件上传到服务器。 我已经在文档和其他各种链接的帮助下完成了这项工作。 由于上传大文件是一项很长的工作,我想为用户提供一个进度条。 经过一些更多的阅读后,我遇到了一个例子 ,从理论上讲,它完全符合我的需要。 通过获取示例代码并使其适应我的需求,我达到了 var upload = { blobs: [], pageName: ”, bytesPerChunk: 20 * 1024 * 1024, currentChunk: 0, loaded: 0, total: 0, file: null, fileName: “”, uploadChunk: function (blob, fileName, fileType) { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function () { if (xhr.readyState == 4) { if (xhr.responseText) { // […]

jQuery相当于XMLHttpRequest的上传?

使用HTML5的File API,上传是通过XMLHttpRequest名为upload的对象完成的。 这是我正在使用的教程(以及Google缓存镜像,因为它现在已经关闭)。 这是相关部分: // Uploading – for Firefox, Google Chrome and Safari xhr = new XMLHttpRequest(); // Update progress bar xhr.upload.addEventListener(“progress”, function (evt) { 如您所见,为了跟踪上传进度, XMLHttpRequest对象有一个名为upload的属性,我们可以添加一个事件处理程序。 我的问题是: jQuery是一个等价的吗? 。 我试图让代码尽可能干净,并且尽可能地跨浏览器兼容,因为每当微软认为这是一个好主意时(虽然它听起来像是在2012年或2013年 )。

我怎样才能推迟每个循环的jQuery

我在每个循环的jQuery中进行“重”canvas操作,导致较慢的设备(IE和iPad)有时变得完全没有响应。 所以我想我可以使用下划线的_.defer()来排列每个循环中的函数,如: function handleAsset = _.defer(function(){ //weightlifting goes here (partly async) }); $.each(assets, handleAsset); 然而,这会抛出一个奇怪的错误(堆栈跟踪指向$.each ): Uncaught TypeError: Object 20877 has no method ‘call’ 这种方法有缺陷吗? 这是由于处理程序函数内部的异步操作吗? 还有另一种/更好的方法来实现这一目标吗?

jQuery ajax请求有效,同样的AngularJS ajax请求没有

我正在学习AngularJS并尝试构建从Wordpress获取数据的前端系统。 在后端方面,一切似乎都正确设置,当我使用jQuery ajax请求时,它可以毫无问题地获取数据。 jQuery.ajax({ type: ‘POST’, url: ‘/wp-admin/admin-ajax.php’, data: { action: ‘getdataajax’ }, success: function(data, textStatus, XMLHttpRequest){ console.log(data); }, error: function(MLHttpRequest, textStatus, errorThrown){ console.log(errorThrown); } }); 但是当我尝试用AngularJS做同样的事情时,它不起作用。 我试图用这样的代码复制ajax请求: myApp.factory(‘productsData’, function($http, $log) { return { getProducts: function(successcb) { return $http({ method: ‘POST’, url: ‘/wp-admin/admin-ajax.php’, data: {action: ‘getdataajax’} }).success(function(data, status, headers, config) { successcb(data); $log.info(data, status, headers(), […]

克隆/删除输入字段 – 保持元素ID唯一

我目前正在处理在表单内生成动态输入字段。 我有一个复杂的例子,它使用复选框和选择框。 它有两种类型的元素: main_items和sub_items 。 如上所述,我可以通过clone函数动态地添加一些jquery来输入输入字段,该函数复制具有唯一id属性的一组新输入字段。 但是我对两件事情有很大的困难:首先,保持id对每个复制的元素都是唯一的,特别是对于选择框。 其次,我只能得到第一个下拉菜单才能用于第一个项目,但我还没有想出办法为其他项目做这个。 的jsfiddle $(‘#btnAdd’).click(function () { var num = $(‘.clonedSection’).length; var newNum = num + 1; var newSection = $(‘#pq_entry_’ + num).clone().attr(‘id’, ‘pq_entry_’ + newNum); newSection.find(‘input[type=”text”]’).val(”); newSection.find(‘select’).val(”); newSection.find(‘input[type=”checkbox”]’).prop(‘checked’, false); //hide sub item newSection.find(‘.sub-item’).hide(); //change the input element selectors to use name newSection.find(‘input[name^=”first_item_”]’).attr(‘id’, ‘main_item_’ + newNum).attr(‘name’, ‘main_item_’ + newNum); newSection.find(‘input[name^=”second_item_”]’).attr(‘id’, […]