未捕获的TypeError:对象#<object>没有方法&#39; on&#39; </object>

时间:2014-04-03 21:45:12

标签: javascript jquery

我收到了Uncaught TypeError:对象#在页面的实时版本上没有'on'方法,但是在测试页面上没有显示错误...我可能在哪里出错了?它有效并且不起作用?

$(document).ready(function() {


  $('#frequency_options').change(function(){
    var selected = $(this).val();
    if(selected == "1"){
    $("#frequency_data").empty();
    $("#frequency_data").append("<input type ='radio' id ='radio1' name='day[]' value='Monday through Friday' />&nbsp;&nbsp; Every <input type ='text'   class ='text' id ='1' name='daily1[]' size ='1' value='1' />&nbsp; day(s) Monday through Friday <br />");
    $("#frequency_data").append("<input type ='radio' id ='radio2' name='day[]' value='Sunday through Saturday' />&nbsp;&nbsp; Every <input type ='text' class ='text' id ='2' name='daily2[]' size ='1' value='1' />&nbsp; day(s) Sunday through Saturday <br />");
    }
    if(selected == "2"){
    $("#frequency_data").empty();
    $("#frequency_data").append("<input type ='radio' id ='radio3' name='week[]' />&nbsp;&nbsp; Every week on the same day of the week from the start date(Monday , Tuesday , etc ..) <br />");
    }

    if(selected == "3"){
    $("#frequency_data").empty();
     $("#frequency_data").append("<input type ='radio' id ='radio4' name='week[]' />&nbsp;&nbsp; Every two weeks on the same day of the week from the start date (Monday , Tuesday , etc ..) <br />");
    }

    if(selected == "4"){
    $("#frequency_data").empty();
    $("#frequency_data").append("<input type ='radio' id ='radio5' name='twice_month[]' value='twice_month1' />&nbsp;&nbsp; On the <input type ='text' class ='text' id ='3' name='twice_per_month1[]' size ='1' value='1' /> day and <input type ='text' id ='4' class ='text' name='twice_per_month3[]' size ='1' value='15' />day of the month <br />");
    $("#frequency_data").append("<input type ='radio' id ='radio6' name='twice_month[]' value='twice_month2' />&nbsp;&nbsp; On the <input type ='text'class ='text' id='5'  name='twice_per_month2[]' size ='1' value='1' />&nbsp; and last day of the month <br />");
    }
    if(selected == "5"){
    $("#frequency_data").empty();
     $("#frequency_data").append("<input type ='radio' id='radio7' name='four_weeks[]' />&nbsp;&nbsp; Every four weeks on the same day of the week from the start date (Monday , Tuesday , etc ..) <br />");
    }
    if(selected == "6"){
    $("#frequency_data").empty();
    $("#frequency_data").append("<input type ='radio' id ='radio8' name='month[]' value='month1' />&nbsp;&nbsp; <input type ='text' id ='6' class ='text' name='month_day[]' size ='1' value='15' /> day of <input type ='text' id='7' class ='text' name='monthly[]' size ='1' value='1' /> month <br />");
    $("#frequency_data").append("<input type ='radio' id ='radio9' name='month[]' value='month2' />&nbsp;&nbsp; <select name='day_order' class ='text' id='day_order'><option value='first'>First</option><option value='second'>Second</option><option value='third'>Third</option><option value='fourth'>Fourth</option><option value='last'>Last</option></select><select name='day_name' id='day_name'><option value='sunday'>Sunday</option><option value='monday'>Monday</option><option value='tuesday'>Tuesday</option><option value='wednesday'>Wednesday</option><option value='Thursday'>Thursday</option><option value='friday'>Friday</option><option value='saturday'>Saturday</option></select>day of every <input type ='text' id ='monthly_dropdown' name='monthly_dropdown[]' size ='1' value='1' /> month <br /> ");
    $("#frequency_data").append("<input type ='radio' id ='radio10' name='month[]' value='month3' />&nbsp;&nbsp; on the last day of every <input type ='text' id ='8' class ='text' name='last_day_monthly[]' size ='1' value='1' /> month <br />");
    }


  });

 $(document).on('click', 'input[id^="1"]', function() {
       $("#radio1").prop("checked", true)
    });
 $(document).on('click', 'input[id^="2"]', function() {
       $("#radio2").prop("checked", true)
    });
 $(document).on('click', 'input[id^="3"]', function() {
       $("#radio5").prop("checked", true)
    });
 $(document).on('click', 'input[id^="4"]', function() {
       $("#radio5").prop("checked", true)
    });
 $(document).on('click', 'input[id^="5"]', function() {
       $("#radio6").prop("checked", true)
    });
 $(document).on('click', 'input[id^="6"]', function() {
       $("#radio8").prop("checked", true)
    });
 $(document).on('click', 'input[id^="7"]', function() {
       $("#radio8").prop("checked", true)
    });
 $(document).on('click', 'input[id^="8"]', function() {
       $("#radio10").prop("checked", true)
    });
 $(document).on('click', 'input[id^="day_order"]', function() {
       $("#radio9").prop("checked", true)
    });
 $(document).on('click', 'input[id^="day_name"]', function() {
       $("#radio9").prop("checked", true)
    });
  $(document).on('click', 'input[id^="monthly_dropdown"]', function() {
       $("#radio9").prop("checked", true)
    });
$(document).on('click', 'input[id^="last_day_monthly"]', function() {
       $("#radio10").prop("checked", true)
    });
/*
$('#events').submit(function(e) {
    //prevent the default submithandling
    alert( "Handler for .submit() called." );
    e.preventDefault();
    //send the data of 'this' (the matched form) to yourURL
    $.post('http://www.hiu.edu/cms/events.php', $(this).serialize());
});
*/

});

1 个答案:

答案 0 :(得分:3)

鉴于该错误,有两种可能性:

  1. 页面的实时版本使用的是旧版本的jQuery而不是页面的开发版本。在jQuery 1.7中添加了on方法。

    解决方案:在开发和生活中使用相同的版本(最新的,理想的)。

  2. 页面的实时版本包含PrototypeJS,MooTools或其他定义$函数的内容,而不是 jQuery。

    解决方案:确保您在页面上放置jQuery,并处理与PrototypeJS / MooTools / noConflict的任何冲突。

  3. 实时版本上有jQuery PrototypeJS,MooTools或类似版本,首先加载jQuery,然后由PrototypeJS,MooTools或类似程序覆盖。

    解决方案:了解如何使用noConflict