2014-11-28 5 views
0

в 1.8.3 мой поток идет в к этому, если условие, но не в 1.9.1неопределенное значение работает в JQuery 1.8.3, но не в 1.9.1

var order_node = $('div.oe_website_sale_tx_status'); 
    if (! order_node || order_node.data('orderId') === undefined) { 
     return; 
    } 

если .data() изменяется в новой версии.

HTML

<div class="oe_website_sale_tx_status" data-order-id="order.id"> 
..... 
..... 
</div> 
+2

Стоит отметить, что' order_node' будет ** никогда ** быть falsey (в либо версия jQuery). Это будет объект jQuery, возможно, пустой, и объекты не являются ложными. –

+0

Этот код ведет себя одинаково в обеих версиях: [пример 1.8.3] (http://jsbin.com/sahaco/2), [1.9.1 пример] (http://jsbin.com/sahaco/2) , И только для полноты, проверяя случай, когда он не найден: [пример 1.8.3] (http://jsbin.com/sahaco/3), [пример 1.9.1] (http://jsbin.com/sahaco/ 4). Замечание: Текущая версия jQuery 1.x - 1.11.1, а не 1.9.1. –

+0

Пожалуйста, удалите или исправьте вопрос. –

ответ

0

Try ниже кода.

изменить orderID на "order-id" в данных(). "order_node.data ('order-id')"

проверка не определено используя typeof. "TypeOf order_node.data ('идентификатор заказа') ===" неопределенными"

var order_node = $('div.oe_website_sale_tx_status'); 
if (! order_node || typeof order_node.data('order-id') === 'undefined') { 
    return; 
} 

HTML

<div class="oe_website_sale_tx_status" data-order-id="order.id"> 

</div> 
+0

Нет никакой проблемы для ключевого атрибута данных. – user00000341

+0

почему голос? –

+2

jQuery делает данные доступными camelCased, поэтому нет никакого смысла в том, что вы предложили. Отдельно, «попробуйте» ответы не полезны, вы всегда должны сказать *, что * вы изменили, и * почему *. На данный вопрос нельзя ответить, поскольку он утверждает то, что не соответствует действительности. –