标签: jquery-1.8

jQuery 1.8外部高度/宽度不起作用

我已经使用outerHeight,并outerWidth在许多地方.现在,在jQuery 1.8发布之后,我遇到了很多由对象返回而不是它的大小引起的问题.

例如:

$('#stackoverflowdiv').Height()      // returns 100 px
$('#stackoverflowdiv').outerHeight() // returns "stackoverflowdiv" div
Run Code Online (Sandbox Code Playgroud)

我发现解决这个问题的唯一方法是在函数中使用"true/false",如下所示,但我得到的结果与标准width()height()函数相同:

$('#stackoverflowdiv').outerHeight(true)  //  returns 100 px
$('#stackoverflowdiv').outerHeight(false) //  returns 100 px
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么这不再工作或以其他方式获得元素的高度/宽度+其边距.

编辑:我开始相信这是因为我使用contents()函数在iframe中选择元素.我会尝试做一个演示.

jquery height jquery-1.8

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

jQuery 1.8查找事件处理程序

如何在jQuery 1.8+中找到对象的事件处理程序?

var func = function(){ alert(1); };
var obj = $('#obj');
obj.on("click", func);
// obj.data('events') is undefined
Run Code Online (Sandbox Code Playgroud)

jquery event-handling jquery-1.8

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

为什么Firefox返回0作为$(window).height()的值

在我看来,Firefox应该更好地在使用时返回正确的值$(window).height().

我正在使用jQuery 1.8.2.这是特定版本中的错误吗?我测试的每个其他浏览器在计算视口高度时都会返回一个合适的值.

为了解决这个问题,我使用下面的剪辑将像素值应用于div.

$(window).bind('cwsObjectsShown', function() {
  var height = $(window).height();
  if (height === 0) {
     height = window.innerHeight;
  }
  height = height - '120';
  $('#game_objects').css('height', height + 'px');
});
Run Code Online (Sandbox Code Playgroud)

firefox jquery jquery-1.8

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

如何将jQuery 1.8.3中的"live"替换为jQuery 1.9?

我的Web框架自动将我的jQuery脚本更新为当前的最新版本1.9.

现在我的全部:

$(".myclass").live("click", function() {...
Run Code Online (Sandbox Code Playgroud)

不再工作了.我主要使用它与一些ajax调用,在我的页面中填充html.

我会知道如何在上一版本中替换此功能.一位朋友告诉我使用"on"代替,但"on"仍然固定在同一个元素上.

解释,在这个例子中(没有ajax),我使用"+"图标来显示"ul li list".

$(".closed").live('click', function(){
    $("#ul_list_"+$(this).attr('id')).addClass("displayed").removeClass("hidden").show();
    $(this).addClass("openned").removeClass('closed');
    $(this).html('<i class="icon-minus"></i>');
});

$(".openned").live('click', function(){
    $("#ul_list_"+$(this).attr('id')).addClass("hidden").removeClass("displayed").hide();
    $(this).addClass("closed").removeClass('openned');
    $(this).html('<i class="icon-plus"></i>');
});
Run Code Online (Sandbox Code Playgroud)

(我知道脚本不是最优化的,但它确实有效.我使用类来打开或关闭我的列表.如果访问者没有启用JS,则不会隐藏任何内容,所有折叠列表都会打开)

笔记:

javascript jquery jquery-1.8 jquery-1.9

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

Angular.js/jQuery html字符串解析在1.9.1和1.8.3中

试图做的angular.element(stringWithHtmlStructure);原因

Error: Syntax error, unrecognized expression: <div id="foo">bar</div>
Run Code Online (Sandbox Code Playgroud)

在jquery 1.9.1中,它适用于jquery 1.8.3

这是一个问题还是一个功能?安全一个或许?我该如何处理?

1.8.3示例http://plnkr.co/edit/ZYYKIixcYzOL46hq0puS?p=preview 1.9.1示例http://plnkr.co/edit/ETmQMY8KoCP0gaKdSrMD?p=preview

对于任何有角度的东西来说绝对不是问题,做$(stringWithHtmlStructure)同样的失败就像你在这里看到的那样http://plnkr.co/edit/FqvOKZ62t0IJ57cT05ew?p=preview

javascript jquery angularjs jquery-1.8 jquery-1.9

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

避免在Chrome中的页面加载时触发调整大小事件

我注意到$.resize()jQuery 的事件在页面加载时被触发,而窗口没有任何实际的"调整大小",具体取决于浏览器.

它不仅被解雇一次,有时甚至两次.(在Chrome 30.0.1599.101 m中加载,在Opera中调整大小...)

这表现正常吗?在为所有浏览器加载网站时,有没有办法统一这种行为?

resize调整大小时我已经调用了一次(使用间隔),但这并没有解决在Chrome加载时触发事件的问题.

我无法创建一个复制此问题的小提琴,但您可以使用如下文件测试此行为:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

<script type="text/javascript">
    $(window).resize(function() {
        alert("Fired!");
    });
</script>
</head>
<body>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

首次使用Chrome加载页面时,系统会触发此事件.任何刷新它都不会被触发.

javascript jquery jquery-1.8

7
推荐指数
2
解决办法
3887
查看次数

jQuery 1.8:不支持的伪:悬停

以下代码引发了unsupported pseudo: hoverjQuery 1.8 的错误,而它在jQuery 1.7.2上运行完美:

if(!$(this).parent().find('ul').first().is(':hover')) {
   $(this).parent().parent().removeClass('open');
}
Run Code Online (Sandbox Code Playgroud)

有谁知道发生了什么?

javascript jquery jquery-1.8

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

不推荐使用jQuery .toggle事件,该怎么用?

由于不推荐使用jQuery .toggle事件方法.我们用什么来模拟这个事件(备用点击)?

jquery jquery-1.8

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

JQuery不能在IE 9.0.8中工作,但可以使用dev工具打开

以下适用于IE 9.0.8以外的所有浏览器.它使用ajax请求在div中加载调查表单.

$('.tab-content').on('click', '.show_survey_form', function(e) {
  e.preventDefault()
  target = $(this).attr("data-target")
  my_href = $(this).attr("href")
  console.log("load: " + target + "   target: " + my_href)
  // load: #survey_response_form_33   target: /surveys/33/survey_responses/edit_multiple

  // Don't make a request unless the form is opening.
  if ($(this).hasClass('collapsed')) {
    console.log("Making request!")
    //$(target).load(my_href)
    $(this).html(closeSurveyForm) // Just changes the language on the button
  } else {
    $(this).html(respondToSurvey) // Just changes the language on the button
  }
}
Run Code Online (Sandbox Code Playgroud)

.load在调试期间被注释掉.IE在这种情况下使用.hasClass似乎有问题.它在其他地方使用没有问题.

真正奇怪的是,当我打开开发工具窗口时,它开始工作.它在此之前始终不起作用,并且在击中F12之后始终如一.

其他问题表明,当类包含\ r \ncchar时,hasClass方法不起作用,但这不是这种情况.我正在使用jQuery 1.8.3.

更新:将href更改为"#"并将URL写入数据加载无效.仍然适用于除IE 9.0.8之外的所有浏览器.

internet-explorer-9 jquery-1.8

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

使用jquery复制/克隆脚本标记

我有一个<script>包含<div>元素内容的标记.现在我需要复制/克隆内容,将其存储在变量中并稍后附加.

奇怪的是,当我附加变量内容时,我只是得到了外部<div>.

知道我做错了什么吗?我们正在使用jQuery 1.8.2.

这是我的代码:

HTML内容:

<div id="payl">
    <div class="toolTipHandler">
        <script type="text/javascript">
            var xxx_title = "<h4>title</h4>";
            var xxx_text = "<p>bla bla</p>";
        </script>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

script.js内容:

var toolTipHandler = jQuery('#payl .toolTipHandler').clone(true);
document.getElementById('payl').innerHTML = '';
jQuery('#payl').append(toolTipHandler);
Run Code Online (Sandbox Code Playgroud)

结果:

<div class="toolTipHandler"></div>
Run Code Online (Sandbox Code Playgroud)

html javascript jquery jquery-1.8

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

jQuery从1.8.3迁移到1.9.1停止在一行中工作,我不知道为什么

我使用的是这段代码:

http://labs.abeautifulsite.net/archived/jquery-alerts/demo/
Run Code Online (Sandbox Code Playgroud)

它与jQuery 1.8.3一起运行良好.

现在我改为jQuery 1.9.1,它停止了工作

我的大多数其他代码都有问题,大部分我不得不改变.live for .on它已经解决了(我不知道这是否是正确的做法),但是使用这段代码,我找不到问题.

这条线似乎给出了问题:

// IE6 Fix
var pos = ($.browser.msie && parseInt($.browser.version) <= 6 ) ? 'absolute' : 'fixed';
Run Code Online (Sandbox Code Playgroud)

你可以在jsFiddle中测试它,你可以改为jQuery 1.8.3,看它是如何工作的.

http://jsfiddle.net/sebababi/P8sfn/1/

javascript migration jquery jquery-1.8 jquery-1.9

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

jQuery 1.8.2 - 如何从只包含文本的select中获取选项?

简单地说,使用这个:

<select id="Test">
    <option value="1">ABC</option>
    <option value="2">DEF</option>
</select>
Run Code Online (Sandbox Code Playgroud)

如何使用jQuery option[value="2"]仅使用"DEF" - 请记住我使用的是1.8.2

谢谢!

html jquery jquery-1.8

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