【问题标题】:Jquery trigger('click') doesnt work in IEJquery trigger('click') 在 IE 中不起作用
【发布时间】:2011-10-04 13:26:03
【问题描述】:

我再次更新,这仅在某些版本的 IE 中失败。这是 js 代码中最后一行的内容。 "$($nextlink).trigger('点击');"某些版本的 IE 无法处理...是否有可能解决它以确保它适用于所有 IE 版本?

这里是 javascript...

$(".trigger").live('click',function() {
 if (event.preventDefault) { event.preventDefault(); } else { event.returnValue = false; } // to prevent default link to image, event.returnValue = false; for it to work in IE.
    var $currentId =$(this).attr('id'); //The Id of the clicked thumbnail
    var $newlink = $currentId + '.php'; //The new images in a .php file
    var $newcontent = '#' + $currentId + 'box'; //Where to load
    var $nextlink = '#' + $(this).next().attr('id'); //The simulated click id
    $($newcontent).load($newlink, function() {
    $("a[rel^='prettyPhoto']").prettyPhoto({animation_speed:'fast',theme:'light_square',slideshow:3000, autoplay_slideshow: false, hideflash: true, deeplinking:false});
$($nextlink).trigger('click');
    });
});

HTML:

<li class="projectitem photo" data-id="id-1">
<div class="grid_1 projectbox">
<div class="boxcontain surf">
<a id="surf" class="trigger" href="img/_MG_8635.jpg"><img class="fade" src="img/thumb_surfbw.jpg" title="Surfing" style="background: url(img/thumb_surfcolor.jpg);" alt="Surfing" /></a>
<a id="surflink" class="hide" rel="prettyPhoto[surfing]" href="img/_MG_8635.jpg" title='<strong>Project: </strong>Photo gallery of my selected surf photos from Hawaii<br><strong>Year: </strong>2011<br><strong>Type: </strong>Photo'><img class="fade" src="img/thumb_surfbw.jpg" title="Surfing" style="background: url(img/thumb_surfcolor.jpg);" alt="Surfing" /></a>
<div id="surfbox" class="hide">blank</div>
<h4>Surfing</h4>
</div></div></li>

所以基本上两个问题:

  1. 为什么有些IE版本不模拟鼠标点击?

  2. 为什么它在 Firefox 中不起作用? (我遇到了 event.preventdefault 在 Firefox 中不起作用的问题,但现在已修复,见下文)

查看http://jgriph.se上的完整示例

【问题讨论】:

  • 你把语法复杂化了。为什么不直接$(this).next().click()??
  • 一方面,event 没有定义
  • 这似乎需要一些重构......你能准确地伪代码你想做的事吗?
  • Shadow Wizard,它不能仅使用 $(this),Wesley Murch,我该如何定义它?对不起,我对 jquery 很陌生。 ://
  • 我尝试过其他方式,但这是我让它工作的唯一方法(chrome)......

标签: jquery events click preventdefault prettyphoto


【解决方案1】:

改变

$(".trigger").live('click',function() {
 if (event.preventDefault) { event.preventDefault(); } else { event.returnValue = false; }

$(".trigger").live('click',function(event) {
 if (event.preventDefault) { event.preventDefault(); } else { event.returnValue = false; }

【讨论】:

    猜你喜欢
    • 2014-12-27
    • 2017-06-16
    • 1970-01-01
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-15
    • 1970-01-01
    相关资源
    最近更新 更多