html attr src,jQuery html($(“

我正在为图片库使用简单的jquery函数。 单击缩略图后有一个div,然后单击缩略图后将大图像加载到其中的目标div。

它在所有浏览器中都能正常工作,但Safari除外,在Safari中,加载图片的绝对URL而不是在div中加载。

这是jQuery代码:

$("#thumbnails a").click(function() {

    $("#work").html($("").attr("src", this.href));

return false;

});

有什么想法吗? 谢谢

this.href不安全!

使用$(this).attr('href'),它将起作用。

在这里查看我的问题:检索HTML属性值" DOM 0方式"

它解释说,有几个有问题的HTML属性(其中的href),因此应使用jQuery的attr()检索其值。

引用该页面上的答案:

For example, the href property of an

element always reports a fully

qualified URL while

getAttribute("href") will return the

string specified in the HTML href

attribute verbatim. Except, of course,

in IE. jQuery's attr() does attempt to

normalize this kind of inconsistency.

更新

我想到了。您没有确保在DOM准备好后即可运行jQuery代码。始终将所有jQuery代码放在ready处理程序中:

$(function() {

// place all jQuery code here

});

更新2

试试这个代码:

$('#thumbnails a').click(function() {

    $('#work').empty().html( ''%20+%20%24(this).attr('href')%20+%20'' );

return false;

});

我应该早点看过。 html()函数的参数必须为字符串。

更新3

可能是Safari(至少)没有执行页面上完全通过jQuery的load()方法加载的JavaScript代码。

但是,我认为我想出了应对方法!

在1776.php页面上,将SCRIPT元素从HEAD移到文档的BODY。

... the code ...

...

我应该如何在.html()函数和/或

4764183标记中加入此内容?

@jon只需将this.href替换为$(this).attr(href)

这就是我所做的(不起作用):$("#work")。html($("

4764183")。attr(" src",$(this).attr(" href"))));返回false;

@jon Safari中会发生什么?网页会被图片替换吗?

是的,确实如此。现在,此代码实际上已在所有浏览器中执行此操作。

@jon浏览器是否报告错误?似乎您在JavaScript代码中遇到了一个错误,该错误禁用了even处理程序。

我跑了萤火虫,在错误控制台中查看,收到0个错误...这里是我正在处理的页面的链接:cprandpartners.com/work/1776.php

@jon您应该从一开始就提供该链接。我花了十秒钟才弄清楚。 :)

哈哈,我觉得这很容易。它是什么?

@jon看看我的回答。我更新了。

那没有用:/它可以在Firefox中工作,但是在Safari中仍然无法使用

@jon可以在我的Safari 5中使用。您正在测试哪个Safari版本?

我在野生动物园5.0.3。中...在野生动物园的四台不同计算机上对其进行了测试。其中任何一个都不行:/

@jonathan是那些Mac吗?我在Windows 7上。

3台是Mac,一台是运行XP。在每个图像上,图像都是通过URL直接在新窗口中加载的。在firefox中,图像会加载到#work div中

@jonathan好的,我想我现在明白了:)请参阅我的最新答案。

@jonathan另外,请查看jQuery的最新版本-1.4.4

确实有效……我遇到了这个问题,我认为这并不重要,但显然如此。 1776.php是通过cprandpartners.com/work/home.php动态加载的,并且在home.php内部,它仍然具有以前存在的问题。单击设计> 1776服装>,然后尝试使用脚本。有任何想法吗?

@jonathon您如何将1776.php插入home.php?

函数c1776(){$(#container).html(

); $(#container).css({right:900px}); $(#container).load(" 1776.php"); $("#container")。stop()。animate({right:0px},{queue:false,duration:500,easing:linear}); }

@jonathon如果直接在Safari中打开1776.php,是否存在问题? (我们解决了原始问题吗?)

是的,我们做到了。只有将1776.php加载到home.php中后,才会发生这种情况

@jonathon您是否不小心恢复了旧代码?我问是因为1776.php页面-cprandpartners.com/work/1776.php-包含您的原始代码,而不是我在UPDATE 2中发布的代码。

你是对的。它确实在最近的更新中恢复了..但它返回到您的代码,并且仍然可以正常运行(或缺少)

@jonathon您有一个复制粘贴错误(我想):最后三个)};之一必须在return false;之后立即移动。它看起来必须像这样:jsfiddle.net/gD78L

为了简单起见,Ive删除了调整大小脚本。现在只是代码正在查看。仍然得到相同的结果。

@jonathon似乎Safari(至少)没有在通过load()加载到另一个页面的页面上执行JavaScript代码。看看这个问题:stackoverflow.com/questions/889967/

@jonathon我终于可以在Safari中遇到您的问题了。这样可以更轻松地解决问题。

@jonathon好吧,我想我终于明白了。在我的答案中查看UPDATE 3。

我删除了除body标签中的内容以外的所有内容,并将jquery包含在此区域内。像魅力一样工作。感谢你的帮助

@jonathon是的,只要SCRIPT元素不在HEAD元素内,JavaScript代码就会执行。

对。 我读了您发送的文章。 再次感谢男人。

@jonathon Ive在Safari中提出了一个解决此问题的问题:stackoverflow.com/questions/4787457/

$("#thumbnails a").click(function() {

      $('#work').empty().append($('', {

src:   this.href

}));

return false;

});

该代码似乎不正确。 .attr(丢失

4764183之后,您得到的是)而不是,。

仅在Safari Mobile中通过javascript附加图像时,请使用css属性background:url(...)代替4764183标签。它不能与4764183标记一起使用。

它在哪里说在手机上运行?

您能解释一下吗?

我对this.href感到困惑,因为而您在属性$("#work")中。

尝试这个:

$("#thumbnails a").click(function() {

var urlHref = $(this).attr('href');

    $("#work").html($("").attr("src", urlHref));

return false;

});

不,那不是问题。仅当this值位于嵌套函数表达式/声明中时,它才具有不同的值。但这不是。

我尝试使用此确切的代码,同样的问题。这是页面:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值