【问题标题】:Struts2 jQuery Conflict - jquery dataTables and the Struts2 Jquery PluginStruts2 jQuery Conflict - jquery dataTables 和 Struts2 Jquery 插件
【发布时间】:2015-06-28 22:52:14
【问题描述】:

我目前面临使用 Datatables 和 Struts2 Jquery 插件的兼容性问题。 struts2 jquery 插件(即)的唯一初始化使我的数据表不再工作。 当我删除我的数据表工作正常时,但我需要使用 Struts2 Jquery 插件进行显示和使用 datepicker

我在我的 jsp 文件中使用它:

<%@taglib  uri="/struts-jquery-tags"        prefix="sx" %>
<head>  <sx:head  jquerytheme="flick" /> 
and this :
<script src="Ressource/lib/datatables/jquery.dataTables.min.js"></script>
<script src="Ressource/lib/datatables/jquery.dataTables.sorting.js"></script>

我需要在我的项目中同时使用它们,或者如果它们是提交日期选择器的另一种方式

【问题讨论】:

    标签: jquery struts2 datepicker datatables struts2-jquery


    【解决方案1】:

    我是用这个来解决这个冲突的

    <%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
    <html>
    <head>
    <sx:head />
    </head>
    

    而不是

    <%@taglib  uri="/struts-jquery-tags"    prefix="sx" %><
        <html>
        <head>
        <sx:head  jquerytheme="flick" />
        </head>
    

    并像这样使用数据选择器:

    <sx:datetimepicker name="name"  label="date" displayFormat="dd/mm/yy"                                                               value="today" />    
    enter code here
    

    解决方案 2

    现在一切正常,我正在使用 struts2-jquery-plugin-3.7.1.jarjquery-min.js 1.7.2 ,$() 语法总是被其他脚本库使用,并导致冲突问题并且无法调用 jQuery 函数。现在我使用这个

    $j=jQuery.noConflict();
    $j(document).ready(function() {
       dt_b: function() {
            $j('#dt_b').dataTable({
                "sScrollX": "100%",
                "sScrollXInner": '110%',
                "sPaginationType": "bootstrap",
                "bScrollCollapse": true 
                 ......
            });
        },
    });
    

    代替

    $(document).ready(function() {
      dt_b: function() {
            $j('#dt_b').dataTable({
                "sScrollX": "100%",
                "sScrollXInner": '110%',
                "sPaginationType": "bootstrap",
                "bScrollCollapse": true 
                 ......
            });
        },
    });
    

    谢谢

    【讨论】:

    • S2 dojo 插件已弃用。
    • 这解决不了根本原因。它只是用一个非常旧的 dojo 版本替换 jquery。我在一个项目数据表中与 jquery 插件一起使用,没有任何问题。如果您可以从浏览器控制台发布具体的错误消息,那就太好了。
    • 所以你能帮我解决这个问题吗?您在应用中使用的版本是什么?
    • 您应该将自己的答案标记为已接受 - 我相信它会在未来对其他人有所帮助。