ホスト ページの子 iframe で jQuery UI を使用する必要があります。私の問題は、ユーザーのマウスが子 iframe の外に出て親に移動すると、ドラッグ操作がうまく機能しないことです。これが発生すると、mousemove イベントまたは mouseup イベントは UI コントロールに送信されなくなります。親がこれらのイベントを処理のために子に渡すだけで、独自の GUI 関数でこれを解決しましたが、jQuery UI ではこれらのイベントを適切に渡す方法がわかりません。以下のサンプルでは、トリガーを使用してイベントを子 iframe に渡す試みが失敗したことを示しています。
これらのイベントを子 iframe に渡し、jQuery UI がそれらを適切に処理できるようにする方法を知っている人はいますか?
これが私のホストページです:
<!DOCTYPE html>
<html lang="en-us">
<head>
<script src="/SharedLib/jquery-1.8.3.js" type="text/javascript"></script>
<script type="text/javascript">
var MouseMoveCallback;
function OnMouseMove(e) {
if (MouseMoveCallback)
MouseMoveCallback(e);
}
$(document).ready(function () {
$(document).mousemove(OnMouseMove);
});
</script>
</head>
<body>
<p>
If your mouse strays outside of the iframe during a drag of the slide handle
it no longer moves or detects mouseup.
</p>
<iframe src="EventTestChildFrame.html" style="width: 500px; height: 80px;">
</iframe>
</body>
</html>
マウスイベントを失う私の子iframeは次のとおりです。
<!DOCTYPE html>
<html lang="en-us">
<head>
<link href="/SharedLib/jquery-ui-1.9.2.custom/css/smoothness/jquery-ui-1.9.2.custom.css" rel="stylesheet" />
<script src="/SharedLib/jquery-1.8.3.min.js" type="text/javascript"></script>
<script src="/SharedLib/jquery-ui-1.9.2.custom/js/jquery-ui-1.9.2.custom.js"></script>
<script type="text/javascript">
function OnMouseMove(e) {
// this doesn't work...
$(document).trigger("mousemove", e);
}
$(document).ready(function () {
parent.MouseMoveCallback = OnMouseMove;
$("#slider").slider();
});
</script>
</head>
<body style="background-color: #D0D0D0;">
<p>Child iframe with jQuery UI control.</p>
<div id="slider" style="margin: 8px;"></div>
</body>
</html>