变更事件未被识别?

时间:2011-06-11 13:37:02

标签: jquery

我有这个代码正在寻找一个onchange事件:

//Create destination switch
    $('#regionselect').change(function(){
        var selected = $(this).find(':selected');
        $('.optionvalue').fadeOut(function(){
             $('.optionvalue').html(selected.html()).fadeIn()
                 .attr('class', 'optionvalue '+selected.val());   
        });
        var count = $('.countrylist').length;
        $('.countrylist').slideUp(function(){
            if(!--count) {
               $('.'+selected.val()).slideDown();
            }       
        });
    });

在这里完美运作: http://jsfiddle.net/XfPv7/1/

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

//This worked for me - I appear to have inherited similar jquery custom select code

function onChange()
{
    var el=document.getElementById("selectid");

    //el.options[] is your array of options
    if (el.options[0].selected==true)
        //Some code 
}

答案 1 :(得分:0)

在小提琴中你使用{live'网站上的select,你使用了一些自定义select(div)

$('.outtaHere ul li a').click(function() {
 // do you stuff to show the elements
});

我不知道您是否可以更改自定义选择的代码,但删除内联的JavaScript代码会更清晰。

答案 2 :(得分:0)

你真正的问题是:

http://www.thestc.co.uk/assets/js/form.js

这里的脚本包括函数populateSelectOptions()selectMe()showOptions(),它们共同用于击败您真正的选择onChange事件处理程序,因为您没有与真正的选择交互所有

如果你杀了select替换脚本,它可以正常工作。请参阅:http://jfcoder.com/test/customselect.html

修改

这是解决问题的一种蛮力方式。

function setDestOpts(dest) {
    reg = $('#regionselect');
    reg.val(dest);
    reg.trigger('change');
    $('#optionsDiv8').removeClass('optionsDivVisible').addClass('optionsDivInvisible');
}
var checkDest = function() {
    if ($('#optionsDiv8').length == 0) return;
    clearInterval(destinterval);
    c_opt = 0;
    $('#optionsDiv8 ul li a').each(function(c_opt){
        reg = $('#regionselect option');
        href = "javascript:setDestOpts('" + reg.eq(c_opt).val() + "');";
        $(this).attr('href', href);
        c_opt++;
    });
}

var destinterval = setInterval(function(){checkDest()}, 500);

http://jfcoder.com/test/customselect.html

所有这一切都是改变注入A.HREF的Javascript,这是根本问题。这模拟了值的变化,然后触发onChange事件。

注意,由于某种原因,jQuery没有加载到我网站上该链接的每个页面加载,所以如果它第一次不起作用,请在完全加载后重新加载页面。