2016-01-23 3 views
0

У меня есть настраиваемый атрибут под названием itemID - как я могу получить его значение, чтобы я мог поместить его в URL-адрес, похожий на то, как я получаю идентификатор?Получить пользовательские данные из события jquery

ЯШ:

<script type="text/javascript"> 
$(document).ready(function(){ 
    $('.eventImage').click(function(e){ 
    $this = $(this); 
     $.ajax({ 
     url: "http://server.local/action.php?event="+$this.attr("id")+"&itemID="+$this.data('itemID'), 
     type:'POST', 
     }); 
    }); 

}); 
</script> 

HTML:

<img class='eventImage' id='ITEM_3_ON' src='images/livingroom/1-2.png' data-itemID='3'/> 
+0

'е! = Event' во всех браузерах – charlietfl

ответ

0

Вы должны дать его таким образом:

$(document).ready(function(){ 
    $('.eventImage').click(function(e) { 
     $this = $(this); // Make a copy of the image. 
     $.ajax({ 
     url: "http://server.local/action.php?event="+$this.attr("id")+"&itemID="+$this.data('itemID'), // Use $this here. 
     type:'POST', 
     }); 
    }); 
}); 

Изменения:

event.target имеет тенденцию к изменению, я думаю, потому что вы вызываете внутри функции обратного вызова AJAX.

  1. Используйте $this для ссылки на текущий объект внутри вызова AJAX.
  2. Используйте тот же $this, чтобы получить id.
+0

цели не может измениться, когда нет детей, которые imge не могут иметь – charlietfl

+0

Itemid показывают, как неопределенную –

+0

@ johncs Какую версию jQuery вы используете? –

-1

Если вы хотите использовать перетекает событие, то вы должны использовать e.target.id и для атрибутов e.target.attributes [ «-Itemid данных»] значение. Не event.target.id как вы переносили е в функцию обработчика кликов.

Обратите внимание, что e.target возвращает объект javascript, а не объект jquery.

+0

вместо передачи значения 3, он передает это: [object% 20Attr] –

+0

Я отредактировал код ... теперь он будет работать нормально –

0

Я думаю, что $this.attr("data-itemID") этого решения ..

Смежные вопросы