2015-02-23 2 views
1

Если перетащить страницу csets.php, я могу перетащить элементы. Но когда я использую onchange для изменения категории. Новый элемент после $ AJAX и запроса не может перетащить.

Csets.php

<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<?php echo $row['head_id'];?>" class="drag"</img> 
<?php } ?> 
</div> 
</div> 

JavaScript

function selectCa(){ 
var xmlhttp=new XMLHttpRequest(); 
var value = document.getElementById("sel1").value; 
xmlhttp.onreadystatechange=function(){ 
    if (xmlhttp.readyState==4 && xmlhttp.status==200){ 
     document.getElementById("options").innerHTML=xmlhttp.responseText; 
    } 
} 
     xmlhttp.open("GET", "checkQuery.php?value="+value, true); 
     xmlhttp.send(); 
} 

CheckQuery.php

<?php 
$value = $_GET["value"]; 

//query head items 
if($value == "head"){ 
    $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<?php echo $row['head_id'];?>" class="drag"></img> 

<?php } 
    }else if($value == "body"){ 
    $strSQL = "SELECT * FROM item_body ORDER BY ibody_id DESC"; 
    $objQuery = mysqli_query($con, $strSQL); 
    while($row = mysqli_fetch_array($objQuery)){ 
?> 

<img width='150' height='120' src='item_body/<?php echo $row['filesName'];?>' id='drag1' class='drag'></img> 

<?php  
} 
}else if($value == "shoes"){ 
    $strSQL = "SELECT * FROM item_shoes ORDER BY ishoes_id DESC"; 
    $objQuery = mysqli_query($con, $strSQL); 
    while($row = mysqli_fetch_array($objQuery)){ 
?> 

<img width='150' height='120' src='item_shoes/<?php echo $row['filesName'];?>' id='drag1' class='drag'></img> 

<?php } 
} 
?> 

ответ

1

После того, как запрос AJAX завершен, вы должны повторно инициировать перетаскиваемую функцию. Когда контент загружается через AJAX, Javascript не нацелен на те элементы, которые загружаются ПОСЛЕ того, как вы вызывали начальную функцию перетаскивания.

+0

Как перезапустить функцию перетаскивания? – tualek2221

+0

Как вы делаете свои элементы перетаскиваемыми? Предположительно запуск функции при загрузке страницы, чтобы перетаскивать выбранные элементы. Вспомните эту функцию после завершения AJAX. – Polarize

+0

Я использую myFunction(), который я использую для выбора элемента перетаскивания в функции selectCa(), но он не может работать. – tualek2221

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