IE 8 中的 jQuery 损坏

发布于 2024-09-18 06:06:39 字数 811 浏览 7 评论 0原文

我有一个方法可以检测选择框上的 onChange 事件。当用户单击选择框时,它应该检测单击,获取 id 并通过调用 php 脚本将一些内容加载到其下面的 div 中。

这在 FF 中似乎运行良好,但在 IE 中没有任何反应。

检测变化的代码:-

$("#select").change(function() {
    var selectedId = $(this).val();
    recordIds = getSelectedRecords(selectedId);
    loadContent('records', recordIds);
});

函数 getSelectedRecords 只是返回一个 div id 数组。

我的 loadContent() 函数调用 $.ajax 函数,该函数传递 recordId 并获取要显示的正确详细信息。

即只是不想使用我的 onChange() 事件。如果我提醒了 selectedId,我会得到正确的 id。如果我发出 recordIds 警报,我什么也得不到。

function getSelectedTierPanels(tierId) {
    var container = $('#tier'+tierId+' a').map(function() { 
        return this.id.match(/\d+$/);
    }).get();
        return container;
}

但是,如果我警告 loadContent 函数的第一个参数,我会得到正确的响应。

有什么想法吗?

I have a method which detects the onChange event on a select box. When the user clicks on the select box, it should detect the click, get the id and load some content into a div below it by calling a php script.

This appears to function fine in FF but in IE nothing happens.

Code which detects change:-

$("#select").change(function() {
    var selectedId = $(this).val();
    recordIds = getSelectedRecords(selectedId);
    loadContent('records', recordIds);
});

The function getSelectedRecords simply returns an array of div ids.

My loadContent() function calls a $.ajax function which passes the recordIds and obtains the correct details to display.

Ie just doesn't want to work with my onChange() event. If I alert out the selectedId, I get the correct id. If I alert out the recordIds I get nothing.

function getSelectedTierPanels(tierId) {
    var container = $('#tier'+tierId+' a').map(function() { 
        return this.id.match(/\d+$/);
    }).get();
        return container;
}

But if I alert out the first parameter of the loadContent function, I get the correct response.

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

没︽人懂的悲伤 2024-09-25 06:06:39

要检查的一件事是您使用的是哪个版本的 jquery。低于 1.4.2 的版本似乎存在问题。 (来源

基于那里的建议的解决方法......

$("#select").change(function() {
    var selectedId = $(this).val();
    recordIds = getSelectedRecords(selectedId);
    loadContent('records', recordIds);
}).attr("onchange", function() { 
    var selectedId = $(this).val();
    recordIds = getSelectedRecords(selectedId);
    loadContent('records', recordIds);
});

它可能可以进行一些清理,或者只是更新到较新版本的 jquery。

One thing to check is what version of jquery are you using. There seems to have been an issue in versions less than 1.4.2. (Source)

A work-around based on suggestions there...

$("#select").change(function() {
    var selectedId = $(this).val();
    recordIds = getSelectedRecords(selectedId);
    loadContent('records', recordIds);
}).attr("onchange", function() { 
    var selectedId = $(this).val();
    recordIds = getSelectedRecords(selectedId);
    loadContent('records', recordIds);
});

It can probably be cleaned up a bit, or just update to a newer version of jquery.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文