小编bob*_*oap的帖子

如何将Object序列化为URL查询参数列表?

在不知道JavaScript的键的情况下Object,我怎么能像...

var obj = {
   param1: 'something',
   param2: 'somethingelse',
   param3: 'another'
}

obj[param4] = 'yetanother';
Run Code Online (Sandbox Code Playgroud)

... INTO ...

var str = 'param1=something&param2=somethingelse&param3=another&param4=yetanother';
Run Code Online (Sandbox Code Playgroud)

...?

javascript

126
推荐指数
11
解决办法
10万
查看次数

在触摸屏上放大时防止固定元素调整大小

在HTML网站上,您有一个固定的元素,如下所示:

<div id="fixed">
  <p>Some content</p>
</div>
Run Code Online (Sandbox Code Playgroud)

它有这个CSS:

#fixed { height:150px; position:fixed; top:0; left:0; z-index:10000; }
Run Code Online (Sandbox Code Playgroud)

当您在移动设备(或任何支持触摸屏的设备)上查看此页面,并且您捏合屏幕以放大时,固定元素将与所有其他内容一起放大(它会变大).放大到足够远时,它变得如此之大,以至于它几乎完全覆盖了它下面的所有内容.

一个实际的用例是UI,如顶部的固定导航栏,或屏幕一角的浮动按钮.

如何防止单个元素在浏览器中调整大小,并使其始终保持相同的大小?

css touch

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

Javascript/jQuery:从画布中删除形状/路径

我似乎无法找到在创建后从画布中删除形状或路径的功能.

所以我在2点之间创建了一条贝塞尔曲线

beginPath();
bezierCurveTo();
stroke();
closePath();
Run Code Online (Sandbox Code Playgroud)

如何在画布创建后将其从画布中删除?我需要能够通过toggle()和调用删除功能blur().我确定这个存在的东西......

在此先感谢您的帮助!

javascript jquery canvas

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

防止页面加载时的默认哈希行为

我有一个带标签界面的页面.每个标签都有唯一的ID.我已经启用了指向该页面的链接,并在哈希之后附加了id,我现在正试图规避默认的浏览器行为,该行为在页面上元素的位置打开带有哈希的URL.

所以:

  • pageA链接到pageB,如下所示: <a href="pageB.php#Tab4">Go</a>
  • pageB打开,我的jQuery激活了正确的选项卡,但浏览器已向下滚动到<div id="Tab4">页面上的位置.

这正是我想要阻止的.

有任何想法吗?谢谢!

jquery

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

使用append()移动DOM元素?

我有一个div像元素

<div id="move">Something</div>
Run Code Online (Sandbox Code Playgroud)

...我想在DOM中从一个位置移动到另一个位置.我可以这样做appendTo(),像这样:

$('#move').fadeOut(500, function() {
   $(this).appendTo('#another-container').fadeIn(500);
});
Run Code Online (Sandbox Code Playgroud)

......或者这会复制吗?

如果它是重复的,那么id在DOM 中将有两个相同的元素.我怎么能避免这个?

jquery appendto

9
推荐指数
2
解决办法
8707
查看次数

多个选择器:识别触发器?

这是一个我无法弄清楚的非常小的问题.我相信有人可以立即回答:

有多个选择器喜欢

$('a.button, span.xyz, a.another').click(function(e) {
   var clicked_element = ???;
});
Run Code Online (Sandbox Code Playgroud)

,我该如何确定实际点击了哪个选择器?我需要像使用它一样$(clicked_element)....

谢谢.

javascript jquery jquery-selectors

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

jQuery速度:哪一个更快,{ul#parent li}或{li.child}?

只是好奇是否有一个既定的"最佳方法"来定位父元素内的子元素.

例如,如果我想在父元素的子元素上创建一个click事件,应该首选哪一个?

a)给出父元素和id并执行:

$('ul#parent li').click(function() {});

b)或者,给每个孩子一个班级名称并直接定位他们:

$('li.child').click(function() {});

我问,因为我试图挤出一些我可以在一个有点大的应用程序中获得的性能.逻辑将要求定位id比定位类名更快,但父>子结构是否否定了这种优势并证明了通过classname进行定位的合理性?

感谢您的任何见解.

jquery jquery-selectors

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

Firefox"智能地"并在运行时以静默方式修复CSS和Scripts中的错误文件引用.使我抓狂!

这是一个非常奇怪的问题,我真的没有在其他地方找到任何东西,所以我想我会在这里解决它.

假设我有一个"image.jpg"并意外地在CSS中引用它,如下所示:

url(imag.jpg)
Run Code Online (Sandbox Code Playgroud)

注意缺少的"e".对我来说,Firefox非常聪明,它仍然可以找到正确的图像,但不会发出警告.所以我认为一切都好.

但是后来,当我在任何其他浏览器中测试页面时,突然间图像不会显示(这是正确的).这是因为Firefox认为在不告诉我的情况下纠正错误是个好主意.

这对于脚本来说变得更加重要.Firefox还会自动更正<script src="">引用中的拼写错误.

我只是浪费了整整一个小时的时间,试图在Webkit中调试ajax函数 - 事实证明,我只是在我包含文件时输入错误.

为什么火狐会在没有告知的情况下这样做,以及我可以将其关闭的地方?这首先发生在FF 3.0附近,并且仍然存在于3.6.3中.

/ rant感谢任何inpu;)

编辑:感谢您的答案到目前为止.我上传了一个演示版

编辑2:感谢下面的精彩输入,我发现它是我的服务器上有CheckSpelling模块(Apache).解决方案:添加

CheckSpelling OFF
Run Code Online (Sandbox Code Playgroud)

到.htaccess并修复它.再次感谢所有人.

PS.对不起,我责备你了,Firefox.你还是最好的!

firefox

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

.htaccess www 到非 www,同时保留路径、ssl 和查询字符串

我试图在 .htaccess 中实现以下目标:

  1. 将 www 重定向到非 www
  2. 保留已请求的路径(例如domain.com/path/to/file.php
  3. 保留查询字符串(如果有)(例如domain.com/path/to/file.php?key=val&key2=val2
  4. 保留已请求的协议(http 或 https)

我尝试了这段代码:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^domain\.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

但它不尊重 http/https,也不保留已请求的路径(例如,它重定向https://www.domain.com/path/file.phphttp://domain.com/file.php, 当它应该重定向到时https://domain.com/path/file.php。)

有任何想法吗?

apache .htaccess

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

jQuery:包含ajax()函数的函数不会返回ajax()响应

为了使我的jQuery代码模块化,即可重用,我在另一个函数中放置了一个ajax()函数fetch_ajax().我正在尝试fetch_ajax()使用来自其他地方的参数调用,这应该只是运行包含ajax()并返回响应.

但这并没有发生 - 相反,fetch_ajax()显然对调用者来说过快地返回错误,并且不会等到ajax()完成请求并得到响应.

这是代码:

fetch_ajax()功能

function fetch_ajax(url) {
  $.ajax({
    type: 'GET', 
    url: url,
    success: function(response) {
      return response;
    }
  });
}
Run Code Online (Sandbox Code Playgroud)

调用功能:

function caller() {
  response = fetch_ajax('script.php');
  alert(response); //this is always 'undefined'
}
Run Code Online (Sandbox Code Playgroud)

fetch_ajax(),我尝试不直接response从内部返回ajax(),但将其写入变量,并在之后返回该变量ajax()- 这也不起作用(相同的结果).

当我return response;ajax()功能内部发出第二个警报时,我看到一个内部后面的一个火caller().所以我想不知怎的,fetch_ajax()在它返回false之前不等待包含的函数执行.

我究竟做错了什么?

谢谢.

jquery

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

preg_replace 属性值

所以我有一个有效的 preg_match 模式来查找字符串中 HTML 属性的值,我需要用 preg_replace 做同样的事情——不是找到并返回值,而是用一个新的值替换它。

但是如果我只使用 preg_match 模式它不起作用......我被卡住了。

这是代码:

    $string = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 
width="437" height="288" id="viddler">
<param name="movie" value="http://www.viddler.com/player/1234567890/" />
<param name="allowScriptAccess" value="always" />
<param name="allowFullScreen" value="true" />
<param name="flashvars" value="fake=1"/>
<embed src="http://www.viddler.com/player/1234567890/" 
width="437" height="288" type="application/x-shockwave-flash" 
allowScriptAccess="always" allowFullScreen="true" flashvars="fake=1" 
name="viddler" ></embed></object>';

preg_match("|<*[^>]*width=\"([^>]+)\"[^>]*>|Ui", $string, $results);

echo 'Width: '.$results[1];
Run Code Online (Sandbox Code Playgroud)

这有效并将返回437。但是,如果我在 preg_replace() 函数中使用相同的模式,它将删除整个<object>标签。我需要用其他任何东西替换那个 437,比如 200。当我们在做的时候,我还需要替换高度值。最后,这应该适用于任何嵌入代码或 iframe,因此它应该分别查找width="height="......就像上面的 preg_match 示例一样。

任何帮助深表感谢。

编辑:蒂姆的解决方案如下

我让蒂姆的模式进行了一个小的修改:

$interm = preg_replace('|(<*[^>]*width=)"[^>]+"([^>]*>)|Ui', '\1"200"\2', $string);
$result = preg_replace('|(<*[^>]*height=)"[^>]+"([^>]*>)|Ui', '\1"300"\2', $interm);
Run Code Online (Sandbox Code Playgroud)

如果没有这个更改,第一个函数会替换宽度,但它会删除标签中之后的所有属性。 …

php regex preg-replace

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