我正在开发拖放Web应用程序。我的问题是我可以获得第一个拖动元素的src。但是当我拖动第二个元素时,它将得到第一个元素的相同src。我用$(this).find(".drag").attr("src")
来获取图像的src。
例如,
拖动第一个元素src - > item_head / head45.png
拖动第二个元素src - > item_head / head45.png(但第二个 element src-> item_head / head46.png)
<div class="wrapper">
<div id="options">
<?php
$strSQL = "SELECT * FROM item_head ORDER BY ihead_id DESC";
$objQuery = mysqli_query($con,$strSQL);
while($row = mysqli_fetch_array($objQuery)){
?>
<img width="150" height="120" src="item_head/<?php echo $row['filesName'];?>" id="drag1" class="drag"></img>
<?php}?>
</div>
脚本:
$("#frame").droppable({
drop: function(ev, ui) {
if (ui.helper.attr('id').search(/drag[0-9]/) != -1){
counter++;
var element = $(ui.draggable).clone();
element.addClass("tempclass");
$(this).append(element);
$(".tempclass").attr("id","clonediv"+counter);
$("#clonediv"+counter).removeClass("tempclass");
//Get the dynamically item id
draggedNumber = ui.helper.attr('id').search(/drag([0-9])/)
itemDragged = "dragged" + RegExp.$1;
var objsrc = $(this).find(".drag").attr("src");
alert(objsrc);
console.log(itemDragged)
$("#clonediv"+counter).addClass(itemDragged);
var objtop = ui.offset.top - $(this).offset().top;
}
}
});
答案 0 :(得分:0)
$(this).find(".drag")
不会返回单个元素。使用.last()
$("#frame").droppable({
drop: function(ev, ui) {
if (ui.helper.attr('id').search(/drag[0-9]/) != -1){
counter++;
var element = $(ui.draggable).clone();
element.addClass("tempclass");
$(this).append(element);
$(".tempclass").attr("id","clonediv"+counter);
$("#clonediv"+counter).removeClass("tempclass");
//Get the dynamically item id
draggedNumber = ui.helper.attr('id').search(/drag([0-9])/)
itemDragged = "dragged" + RegExp.$1;
var objsrc = $(this).find(".drag").last().attr("src");
alert(objsrc);
console.log(itemDragged)
$("#clonediv"+counter).addClass(itemDragged);
var objtop = ui.offset.top - $(this).offset().top;
}
}
});