需要帮助获取以前工作的jQuery脚本以在新版本上工作吗

需要帮助获取以前工作的jQuery脚本以在新版本上工作吗,jquery,drupal,javascript,Jquery,Drupal,Javascript,这个脚本是由其他人写的,我无法咨询他。它是为jQuery的旧版本(可能是jQuery1.3)编写的,并且在该版本上工作得非常好。在我的新网站上,它使用了jQuery的最新版本(1.7?),脚本完全被破坏了 通过将所有出现的“$”替换为“jQuery”,我基本上可以让它正常工作。我不知道为什么这是必要的,因为我在网上阅读的所有教程和示例都显示使用了美元符号 但是,代码仍然存在问题。当在旋转木马中选择某个项目时,它似乎不会更改HTML中的单选按钮以显示已选中该项目。根据在线文档,我尝试使用.prop

这个脚本是由其他人写的,我无法咨询他。它是为jQuery的旧版本(可能是jQuery1.3)编写的,并且在该版本上工作得非常好。在我的新网站上,它使用了jQuery的最新版本(1.7?),脚本完全被破坏了

通过将所有出现的“$”替换为“jQuery”,我基本上可以让它正常工作。我不知道为什么这是必要的,因为我在网上阅读的所有教程和示例都显示使用了美元符号

但是,代码仍然存在问题。当在旋转木马中选择某个项目时,它似乎不会更改HTML中的单选按钮以显示已选中该项目。根据在线文档,我尝试使用.prop而不是.attr,但不起作用

该脚本所属的化身生成器出现在编辑帐户页面上。我已经在新网站上创建了一个测试用户,所以任何愿意帮助的人都可以测试它。 您可以在此处登录: 用户名:testuser 密码:jQuery

编辑帐户链接:

我目前主要使用的代码是foster_avatar_widget.js 标题中包含的JS可在以下位置查看:comm7.he2236.vps.webenabled.net

function select_avatar(image, button) {
image.input.prop('checked', true);
alert(image.input.is(':checked'));
jQuery('#layer_'+image.id).css({ backgroundImage: "url("+image.url+")" });

var src = button.attr("src");

button.parent().parent().find("li img").each(
    function(index) {
        if(jQuery(this).attr("src") == src)
        jQuery(this).addClass("avatar_select");
        else
        jQuery(this).removeClass("avatar_select");
    }
);
}

function unselect_avatar(image, button) {

image.input.prop('checked', false);

//select empty
jQuery('#default_input_'+image.id).prop('checked', true);

jQuery('#layer_'+image.id).css({ backgroundImage: "none" });

var src = button.attr("src");

button.parent().parent().find("li img").each(
    function(index) {
        if(jQuery(this).attr("src") == src)
        jQuery(this).removeClass("avatar_select");
    }
);
}

function mycarousel_itemVisibleInCallback(carousel, item, i, state, evt) {
 var data = carousel.data;

 if(!data) {
     var cid = carousel.list.attr('id').substring(9);
    var data = new Array();
    jQuery('#'+cid+' img').each(
        function(index) {
            var input = jQuery(this).siblings('input');
            var url = jQuery(this).attr('src');

            if(input.is(':checked')) {
                    jQuery('#layer_'+cid).css({ backgroundImage: "url("+url+")" });                   
            }

            data.push({id: cid, input: input, image: jQuery(this), url: url});
        });

    carousel.data = data;

    jQuery('#user-edit').append('<div class="form-item" style="display:none"><label class="option"><input class="form-radio user_avatar_select" id="default_input_'+cid+'" type="radio" value="none" name="select_avatar_'+cid.substring(cid.lastIndexOf("_") + 1)+'"/></label></div>');
}

var idx = carousel.index(i, data.length);
var image = data[idx - 1];

var img = image.image.clone();

if(image.input.is(':checked'))
    img.addClass("avatar_select");

carousel.add(i, img);

img.hover(
    function(){jQuery(this).addClass("avatar_hover");},
    function(){jQuery(this).removeClass("avatar_hover");}
  );

img.click(
    function () {
        if(image.input.is(':checked'))
            unselect_avatar(image, jQuery(this));
        else
            select_avatar(image, jQuery(this));
    }
);
};

function mycarousel_itemVisibleOutCallback(carousel, item, i, state, evt)
{
carousel.remove(i);
};

function mycarsousel_init(list) {
if(!list.attr('id'))
    return;

jQuery(".picture").append('<div class="avatar_layer" id="layer_'+list.attr('id')+'"></div>');

list.append('<ul id="carousel_'+list.attr('id')+'" class="jcarousel-skin-tango"></ul>');

jQuery('#carousel_'+list.attr('id')).jcarousel({
    scroll: 6,
    wrap: 'circular',
    //itemLoadCallback: itemLoadCallbackFunction,
    itemVisibleInCallback: {onBeforeAnimation: mycarousel_itemVisibleInCallback},
    itemVisibleOutCallback: {onAfterAnimation: mycarousel_itemVisibleOutCallback}
});
}

jQuery(document).ready(function () {   
  jQuery('div.user_avatar_select').parent().hide();

  for(var i=0;i<10;i++) {
    mycarsousel_init(jQuery('#user_avatars_select_'+i));
  }

  jQuery(".picture #current").css({display: "none"});

  jQuery(".picture").css({"position": "relative", "width": "200px", "height": "200px", "background-image": "url(/sites/default/files/default_avatar.gif)"});
});
var ie55 = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) == 4 && navigator.appVersion.indexOf("MSIE 5.5") != -1);
var ie6 = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) == 4 && navigator.appVersion.indexOf("MSIE 6.0") != -1);

function select_avatar(image, button) {
image.input.attr("checked", "checked");

if (jQuery.browser.msie && (ie55 || ie6)) {
    $('#layer_'+image.id).css('background-image', 'none');
    $('#layer_'+image.id).get(0).runtimeStyle.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader' + '(src=\'' + image.url + '\', sizingMethod=\'scale\');';
}
else {
    $('#layer_'+image.id).css({ backgroundImage: "url("+image.url+")" });
}

var src = button.attr("src");

button.parent().parent().find("li img").each(
    function(index) {
        if($(this).attr("src") == src)
        $(this).addClass("avatar_select");
        else
        $(this).removeClass("avatar_select");
    }
);
}

function unselect_avatar(image, button) {

image.input.attr("checked", "");

//select empty
$('#default_input_'+image.id).attr("checked", "checked");

$('#layer_'+image.id).css({ backgroundImage: "none" });

if (jQuery.browser.msie && (ie55 || ie6)) {
    $('#layer_'+image.id).get(0).runtimeStyle.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader none;';
}
else {
    $('#layer_'+image.id).css({ backgroundImage: "none" });
}

var src = button.attr("src");

button.parent().parent().find("li img").each(
    function(index) {
        if($(this).attr("src") == src)
        $(this).removeClass("avatar_select");
    }
);
}

function mycarousel_itemVisibleInCallback(carousel, item, i, state, evt) {
 var data = carousel.data;

 if(!data) {
     var cid = carousel.list.attr('id').substring(9);
    var data = new Array();
    $('#'+cid+' img').each(
        function(index) {
            var input = $(this).siblings('input');
            var url = $(this).attr('src');

            if(input.attr("checked")) {
                if (jQuery.browser.msie && (ie55 || ie6)) {
                    $('#layer_'+cid).css('background-image', 'none');
                    $('#layer_'+cid).get(0).runtimeStyle.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader' + '(src=\'' + url + '\', sizingMethod=\'scale\');';
                }
                else {
                    $('#layer_'+cid).css({ backgroundImage: "url("+url+")" });
                }

            }

            data.push({id: cid, input: input, image: $(this), url: url});
        });

    carousel.data = data;

    $('#user-edit').append('<div class="form-item" style="display:none"><label class="option"><input class="form-radio user_avatar_select" id="default_input_'+cid+'" type="radio" value="none" name="select_avatar_'+cid.substring(cid.lastIndexOf("_") + 1)+'"/></label></div>');
}

var idx = carousel.index(i, data.length);
var image = data[idx - 1];

var img = image.image.clone();

if(image.input.attr("checked"))
img.addClass("avatar_select");

carousel.add(i, img);

img.hover(
    function(){$(this).addClass("avatar_hover");},
    function(){$(this).removeClass("avatar_hover");}
  );

img.click(
    function () {
        if(image.input.attr("checked"))
        unselect_avatar(image, $(this));
        else
        select_avatar(image, $(this));
    }
);
};

function mycarousel_itemVisibleOutCallback(carousel, item, i, state, evt)
{
    carousel.remove(i);
};

function mycarsousel_init(list) {
if(!list.attr('id'))
return;

$(".picture").append('<div class="avatar_layer" id="layer_'+list.attr('id')+'"></div>');

list.append('<ul id="carousel_'+list.attr('id')+'" class="jcarousel-skin-tango"></ul>');

$('#carousel_'+list.attr('id')).jcarousel({
    scroll: 6,
    wrap: 'circular',
    itemVisibleInCallback: {onBeforeAnimation: mycarousel_itemVisibleInCallback},
    itemVisibleOutCallback: {onAfterAnimation: mycarousel_itemVisibleOutCallback}
});
}

if (Drupal.jsEnabled) {
$(document).ready(function () {

  $('div.user_avatar_select').parent().hide();

  for(var i=0;i<10;i++)
  mycarsousel_init($('#user_avatars_select_'+i));

  $(".picture #current").css({display: "none"});

  $(".picture").css({"position": "relative", "width": "200px", "height": "200px", "background-image": "url(/files/default_avatar.gif)"});


  if (jQuery.browser.msie && (ie55 || ie6)) {
    $(".avatar_layer").each(function() {
        //alert(jQuery(this).css('background-image'));
        //$(this).css('background-image', 'none');
        //$(this).get(0).runtimeStyle.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader' + '(src=\'' + image.url + '\', sizingMethod=\'scale\');';
    });
}
});
}
功能选择\u化身(图像,按钮){
image.input.prop('checked',true);
警报(image.input.is(':checked');
jQuery('#layer#'+image.id).css({backgroundImage:url(“+image.url+”))});
var src=button.attr(“src”);
button.parent().parent().find(“li img”)。每个(
功能(索引){
if(jQuery(this).attr(“src”)==src)
jQuery(this).addClass(“化身选择”);
其他的
jQuery(this).removeClass(“avatar_select”);
}
);
}
取消选择化身功能(图像、按钮){
image.input.prop('checked',false);
//选择空
jQuery('#default_uinput'+image.id).prop('checked',true);
jQuery('#layer'+image.id).css({backgroundImage:“none”});
var src=button.attr(“src”);
button.parent().parent().find(“li img”)。每个(
功能(索引){
if(jQuery(this).attr(“src”)==src)
jQuery(this).removeClass(“avatar_select”);
}
);
}
函数mycarousel_itemVisibleInCallback(旋转木马、项目、i、状态、evt){
var data=carousel.data;
如果(!数据){
var cid=carousel.list.attr('id')。子字符串(9);
var data=新数组();
jQuery(“#”+cid+“img”)。每个(
功能(索引){
var-input=jQuery(this).sibbines('input');
var url=jQuery(this.attr('src');
if(input.is(':checked')){
jQuery('#layer'+cid).css({backgroundImage:url(“+url+”)});
}
push({id:cid,input:input,image:jQuery(this),url:url});
});
carousel.data=数据;
jQuery(“#用户编辑”).append(“”);
}
var idx=转盘索引(i,数据长度);
var图像=数据[idx-1];
var img=image.image.clone();
if(image.input.is(':checked'))
img.addClass(“化身选择”);
转盘。添加(i,img);
悬停(
函数(){jQuery(this).addClass(“avatar_hover”);},
函数(){jQuery(this).removeClass(“avatar_hover”);}
);
点击(
函数(){
if(image.input.is(':checked'))
取消选择_头像(图像,jQuery(此));
其他的
选择_avatar(图像,jQuery(this));
}
);
};
函数mycarousel_itemVisibleOutCallback(carousel,item,i,state,evt)
{
转盘。移除(i);
};
函数mycarsousel_init(列表){
如果(!list.attr('id'))
返回;
jQuery(“.picture”).append(“”);
list.append(“
    ”); jQuery('#carousel'+list.attr('id')).jcarousel({ 卷轴:6, 包装:“圆形”, //itemLoadCallback:itemLoadCallbackFunction, itemVisibleInCallback:{onBeforeAnimation:mycarousel_itemVisibleInCallback}, itemVisibleOutCallback:{onAfterAnimation:mycarousel_itemVisibleOutCallback} }); } jQuery(文档).ready(函数(){ jQuery('div.user\u avatar\u select').parent().hide();
    对于(var i=0;i尝试用jQuery()包装元素。例如:
    jQuery(image).input.attr('checked',true);
    在Drupal 7中,始终使用jQuery()而不是$(),否则,您需要使用以下代码包装代码:

    (function ($) {
      // Your code here
    })(jQuery);
    

    希望这能帮助您找到问题所在。这是由于HTML与页面的D6到D7版本不同造成的。JavaScript和jQuery实际上没有任何问题,只是没有弥补这一差异。

    我尝试了用jQuery(image)查找并替换image.input.input但得到以下内容:[14:28:32.219]类型错误:jQuery(…)。输入未定义@