Javascript 脚本5007。IE7无法读取函数
我正在处理一个项目的一部分,该项目的地址随更改事件而更改。地址信息作为json数组传递 不幸的是,我编写的代码在IE7上不起作用。我已经用大多数可用的浏览器实现了我的目标,但我不知道如何在IE7上解决这个问题。以下是我的代码片段:Javascript 脚本5007。IE7无法读取函数,javascript,jquery,html,internet-explorer,internet-explorer-7,Javascript,Jquery,Html,Internet Explorer,Internet Explorer 7,我正在处理一个项目的一部分,该项目的地址随更改事件而更改。地址信息作为json数组传递 不幸的是,我编写的代码在IE7上不起作用。我已经用大多数可用的浏览器实现了我的目标,但我不知道如何在IE7上解决这个问题。以下是我的代码片段: <script type="text/javascript"> var remote_self_json_branches_text = <?=$remote_self_json_branches?>; function selfOffice
<script type="text/javascript">
var remote_self_json_branches_text = <?=$remote_self_json_branches?>;
function selfOfficeChangeText(element)
{
console.log(remote_self_json_branches_text);
$(".self_del").css('display', 'none');
$("#self" + $(element).val()).css('display', 'block');
}
function change_delivery_office_selection_text (branch_id) {
var cityMap = '';
if(branch_id == 1){
$('.textBlockContainer #self .headerImage').removeClass('remote-self').addClass('self');
}
if(branch_id == 2){
$('.textBlockContainer #self .headerImage').addClass('remote-self').removeClass('self');
}
if(branch_id == 3){
$('.textBlockContainer #self .headerImage').addClass('remote-self').removeClass('self');
}
$(".cityBranch").css('display', 'none');
$("#city" + branch_id).css('display', 'block');
}
$(document).ready(function(){
var mapUrl = '<?= $deliveryOffices[1]['mapCoordinates']?>';
dom('delivery_office_title_text').innerHTML = remote_self_json_branches_text[1].v_title;
dom('delivery_office_address_text').innerHTML = '<a class="mapPopup" href="' + mapUrl + '">' + remote_self_json_branches_text[1].v_address + '</a>';
dom('delivery_office_work_time_text').innerHTML = remote_self_json_branches_text[1].v_work_time;
var mapUrl = '<?= $deliveryOffices[2]['mapCoordinates']?>';
dom('delivery_office_title1_text').innerHTML = remote_self_json_branches_text[2].v_title;
dom('delivery_office_address1_text').innerHTML = '<a class="mapPopup" href="' + mapUrl + '">' + remote_self_json_branches_text[2].v_address + '</a>';
dom('delivery_office_work_time1_text').innerHTML = remote_self_json_branches_text[2].v_work_time;
var mapUrl = '<?= $deliveryOffices[3]['mapCoordinates']?>';
dom('delivery_office_title2_text').innerHTML = remote_self_json_branches_text[3].v_title;
dom('delivery_office_address2_text').innerHTML = '<a class="mapPopup" href="' + mapUrl + '">' + remote_self_json_branches_text[3].v_address + '</a>';
dom('delivery_office_work_time2_text').innerHTML = remote_self_json_branches_text[3].v_work_time;
});
</script>
我的猜测是浏览器没有足够的时间加载JavaScript。我不是很熟练的跨浏览器兼容性,所以任何帮助将不胜感激。
提前感谢。我的猜测是,IE 7认为该值为null或未定义,因为您使用的是不兼容的jQuery版本。尝试加载它的较低版本,例如1.4和/或更改选择器语法
也许jQuery选择器像$self+$element.val.css'display','block';在IE 7的最新版本中存在问题,返回null或未定义是正常的。我会将此添加到document.ready函数中,并从选择中删除onchange:
$("#delivery_office_text").change(function() {
selfOfficeChangeText(this);
change_delivery_office_selection_text($(this).val());
});
它在文档就绪时绑定更改事件。
我还让它使用$this.val获取当前值,以防出现问题。我认为问题在于IE7 select元素没有value属性。那个错误信息非常令人困惑。。。。selfOfficeChangeText不是一个属性!selfOfficeChangeText是一个函数,我在SelectOnChange属性中使用它。每个选项都有作为id的值,这些值通过php传递。value=可能更难理解,因为我的代码不太整洁。但问题是,我在跨浏览器兼容性方面缺少了一些细微差别。这不是我的意思。我想说的是,也许IE7选择元素节点没有值属性。这并不意味着没有选择某个值,它只是意味着IE7的dom引擎没有将该值放在select元素的value属性中。我只是在猜测这一点,因为我无法重新创建它。很抱歉,但我忘了提到,我已经尝试在函数内部调试,但没有得到任何结果。这意味着浏览器无法加载这些功能。此外,js代码与html+php代码位于相同的.phtml文件中。
SCRIPT5007: The value of the property "selfOfficeChangeText" is null or undefined, not a Function object
$("#delivery_office_text").change(function() {
selfOfficeChangeText(this);
change_delivery_office_selection_text($(this).val());
});