我有一个小问题。当返回结果时,我有一个标准的搜索屏幕(Perl、jQuery、css、html)我使用 jquery ui selectable 并将结果打印为有序列表、列表项。在用户单击所需记录并按下编辑按钮,使用选择的 id 时,这一直工作正常,我将它们重定向到“编辑/查看”屏幕。
今天我被要求添加双击功能,这意味着用户双击所需的记录并被带到“编辑/查看”页面。我在 FF 中开发,我们的用户使用 IE9 (UGGGGGGGG!!!!!!!!!!)。所以我用FF写了它并且很容易让它工作。这是我可选择的代码部分
$(function() {
$("#selectable").selectable({
selecting: function(event, ui){
if( $(".ui-selected, .ui-selecting").length > 1){
$(ui.selecting).removeClass("ui-selecting");
}
if( $(".ui-selected")) {
$("#editbtn").prop("disabled", false);
}
},
stop: function() {
var result = $( "#select-result" ).empty();
$( ".ui-selected", this ).each(function() {
result.html('<input type="hidden" id="clientid" name="clientid" value="'+$(this).attr("id")+'">');
});
}
});
$("ol li").on("dblclick", function() {
alert("hey man!");
var client_id = $("#clientid").val();
window.location = "client?client_id="+client_id+"&user_id=$user_id";
});
});
我在这里做了一些事情,我相信你可以看到......我防止套索和选择多个记录,并且在选择时我将选择的 ID 扔到隐藏的输入中,这样我就可以在重定向中使用 id 和 jQuery 和与 Perl。
我在底部添加的新部分是双击。我从 $('#selectable').dblclick 开始,它在 FF 中完美运行。然后我在 IE9 中对其进行了测试,因为这是用户使用的,双击根本不会触发。
我将其更改为 $('body').dblclick 以确保我没有发疯,当然警报是在 IE9 中触发的。而且,现在两次,通过像疯子一样随机双击记录,我已经在 IE9 中触发了 dblclick 事件。几乎就像它隐藏在可选事件后面一样。我搞砸了距离:1,这实际上导致双击事件在 IE9 中触发,但随后它阻止我实际选择记录,因此 id 未定义。
在此先感谢您的帮助。我=新手。