Я хочу инкапсулировать функцию, ее можно вызвать напрямую, сделать ее объектом (например: $ ('. Box')) можно перетаскивать.Функция инкапсуляции не работает в jQuery
это мой код:
$.fn.drag = function() {
var movebox = $(this);
movebox.onmousedown = function() {
var moveX = event.clientX,
moveY = event.clientY,
ofX = movebox.offsetLeft,
ofY = movebox.offsetTop,
newmovX = moveX - ofX,
newmovY = moveY - ofY;
document.onmousemove = function() {
var moveX = event.clientX,
moveX_1 = event.clientX - newmovX,
moveY_1 = event.clientY - newmovY;
movebox.style.top = moveY_1 + "px";
movebox.style.left = moveX_1 + "px";
};
document.onmouseup = function() {
document.onmousemove = function() {};
document.onmouseup = function() {};
}
}
}
$(".box").drag();
.box {
width: 50px;
height: 50px;
background-color: yellow
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="box"></div>
вопрос: Когда я использую его, он не работает, и это не входит в '' OnMouseDown function.why? Я новый пользователь, который может помочь мне решить эту проблему? Спасибо!
Во-первых, пожалуйста, укажите * актуальный * код в вопросе, а не его фотографию. Во-вторых, что именно не работает? Нам нужно знать, что он делает, и что вы ожидаете от этого. –
wait Я также отправлю код изображения ....;) – Jai
@Rory McCrossan благодарит вас за советы –