Javascript 获得;TypeError:triggerElement为空";使用日历在产品页上的magento中出错

Javascript 获得;TypeError:triggerElement为空";使用日历在产品页上的magento中出错,javascript,magento,calendar,prototype,Javascript,Magento,Calendar,Prototype,我面临着这个错误 " TypeError:triggerElement为空 triggerElement.onclick=函数(){ " 当我在magento v-1.8.1.0上安装预订模块时 其功能使用日历 Calendar.setup = function(params) { function param_default(name, def) { if (!params[name]) params[name] = def } param_default('d

我面临着这个错误 " TypeError:triggerElement为空

triggerElement.onclick=函数(){ " 当我在magento v-1.8.1.0上安装预订模块时

其功能使用日历

    Calendar.setup = function(params)
{

  function param_default(name, def) {
    if (!params[name]) params[name] = def
  }

  param_default('dateField', null)
  param_default('triggerElement', null)
  param_default('parentElement', null)
  param_default('selectHandler',  null)
  param_default('closeHandler', null)

  // In-Page Calendar
  if (params.parentElement)
  {
    var calendar = new Calendar(params.parentElement)
    calendar.setSelectHandler(params.selectHandler || Calendar.defaultSelectHandler)
    if (params.dateFormat)
      calendar.setDateFormat(params.dateFormat)
    if (params.dateField) {
      calendar.setDateField(params.dateField)
      calendar.parseDate(calendar.dateField.innerHTML || calendar.dateField.value)
    }
    calendar.show()
    return calendar
  }
//弹出式日历 // //XXX通过创建 //日历,并将其存储在页面上,但之后您将遇到问题 //同一页上有多个日历

else
  {
    var triggerElement = $(params.triggerElement || params.dateField)
    triggerElement.onclick = function() { 
      var calendar = new Calendar()
      calendar.setSelectHandler(params.selectHandler || Calendar.defaultSelectHandler)
      calendar.setCloseHandler(params.closeHandler || Calendar.defaultCloseHandler)
      if (params.dateFormat)
        calendar.setDateFormat(params.dateFormat)
      if (params.dateField) {
        calendar.setDateField(params.dateField)
        calendar.parseDate(calendar.dateField.innerHTML || calendar.dateField.value)
      }
      if (params.dateField)
        Date.parseDate(calendar.dateField.value || calendar.dateField.innerHTML, calendar.dateFormat)
        calendar.showAtElement(triggerElement)
      return calendar
    }
  }

}

我在页面加载时遇到此错误,有人能指导我调试此错误吗?提前谢谢。

当您在函数中传递
params
时,是否检查它是否包含
params.triggerement
params.dateField
,因为如果

var triggerement=$(params.triggerement | | params.dateField)

null
赋值给
triggerElement
,则您将得到所得到的错误


在这一行
var triggerement=$(params.triggerement | | params.dateField)
之后,如果在绑定单击事件之前没有创建元素,则可以放置
null
检查并创建该元素。

谢谢你,
var triggerement=$(params.triggerement | params.dateField)
返回null错误的原因是jquery冲突,添加了jquery、noConflict()代码,并在该行代码中将$替换为jquery,问题得到解决