1

调用 .dialog() 时,我在 IE8 和 IE7 上收到错误消息。

我从 IE 控制台收到的错误消息是:

SCRIPT438:对象不支持此属性或方法。

jquery-1.7.2.min.js,第 2 行字符 21784

这是我的代码:

// Add to cart button clicked
$tablePanel.on('click', '.AddToCartButton', function (e) {
    $('#mdlPopup_backgroundElement').show();


var optionId = +e.target.getAttribute('optionid');       
var categoryId = +e.target.getAttribute('categoryid');       
// Get the product shoptCityId from previous <tr>       
var $baseProdTr = $(e.target).closest('td.info_row').parent().prev();       
var shopCityId = +$baseProdTr.attr('shopcityid');


// For Dev!
if (isNaN(shopCityId)) {        
    alert('Error:\nFailed to get the shopCityId value from the base product <tr>');
    return;           
}

// Close the product <tr> in the table
oTable.fnClose($baseProdTr[0]);

var shopDisplay = $baseProdTr.find('b.shopDisplay').text();

$.post(urlAddToCart, { productOptionId: optionId, shopCityId: shopCityId, shopDisplay: shopDisplay, categoryId: categoryId }, function (result) {
    
    if (result === 'EmptyView') {
        updateCartItemsCount();
      
        $('#mdlPopup_backgroundElement').hide();
        return;
    }
   
    var $input = $(result).filter('#hdnModalProps');           
    var className = $input.attr('classval');           
    var width = $input.attr('widthval');         
    var height = $input.attr('heightval');

    // --------- the error occurred here:  ------------------
        $modalDialog = $(result).dialog({ modal: true, draggable: false, resizable: false, width: width,
            dialogClass: className + 'noTitleDialog'
        });
                
              
    $('#mdlPopup_backgroundElement').hide();
   
});

});

我正在使用:jquery-ui-1.8.11.min.js

你可以在这里看到这个:

http://2send.co.il/Products/%D7%A2%D7%A4%D7%95%D7%9C%D7%94/%D7%A2%D7%A6%D7%99%D7%A6% D7%99%D7%9D

  1. 点击照片。
  2. 点击粉色按钮

谢谢。

4

2 回答 2

2

对话框方法来自jQuery UI 库

您不仅应该在代码中包含 jQuery,还应该包含 jQuery UI 库。如果你已经完成了,请显示完整的代码。

于 2013-01-28T09:08:50.183 回答
0

对话框内容来自服务器的 \r\n,IE8 不解析这些 \r\n 并制作 DOM 元素。所以在 js 中,我添加了从内容中删除 \r\n 的代码。

结果 = result.replace(/\r\n/g, '').replace(/\s+/g, ' ');

$modalDialog = $(result).dialog({modal: true, draggable: false, resizable: false, width: width, height: height, dialogClass: className + 'noTitleDialog' });

于 2013-01-29T14:05:21.137 回答