http://www.gamingunion.net/ http://www.gamingunion.net/forums/
当您点击游戏背景时,它将打开Amazon.com链接。由于某些原因,在论坛上它失败并且错误 $(event.target).closest不是函数。
http://www.bungieunion.com/gamingunion/js/forum.js
第二个功能是有问题的功能。 jQuery版本在两个页面上是相同的,所以我无法弄清楚问题可能是什么。
答案 0 :(得分:1)
看起来目标是HTML DOM对象,而不是jquery对象。我会测试以查看event.target是否是jQuery的实例:
var target = (event.target instanceof jQuery) ? event.target : jQuery(event.target);
这将确保在调用.closest()
之前目标对象是jQuery对象编辑:在使用noConflict的情况下将$更改为jQuery
编辑#2:我将你的第二个方法改为:
var _body = jQuery("body");
_body.click(function() {
// affilate takeover functions
if( _body.attr('id').length
&& _body.closest('header').length == 0
&& _body.closest('#wrapper > nav').length == 0
&& _body.closest('#leaderboard > div').length == 0
&& _body.closest('#wrapper2').length == 0
&& _body.closest('body > footer').length == 0
&& _body.attr('name') != 'userfile'
&& _body.closest('.ui-datepicker-calendar').length == 0
&& _body.closest('.ui-datepicker-prev').length == 0
&& _body.closest('.ui-datepicker-next').length == 0
&& _body.closest('.editor_control_bar').length == 0
&& _body.closest('.ui-autocomplete').length == 0
&& _body.closest('#fancybox-overlay').length == 0
&& _body.closest('#fancybox-wrap').length == 0
&& _body.attr('href') != '#shoutbox'
&& !_body.hasClass('ui-button-text')
&& _body.closest('.ui-dialog').length == 0) {
// variables
var affiliate_url = jQuery("input[name=affiliate_url]").val();
window.open(affiliate_url);
}
});
答案 1 :(得分:0)
我认为亚马逊联盟脚本在加载脚本后加载jQuery版本1.2.6,并在您调用jQuery.noConflict()
之后加载。如果您在IE9的监视面板中查看$
和jQuery
,您会发现它们不一样。加载的脚本是
http://z-ecx.images-amazon.com/images/G/01/browser-scripts/us-site-wide-1.2.6/site-wide-10148190434.js._V178546632_.js
是jQuery的1.2.6版。请注意,版本1.3中引入了.closest