0

我很难覆盖核心 jQuerymobile 功能。这是我使用的 JQM 库的链接:http: //code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.js

我更改了第 5873 行

.appendTo( wrapper )

到以下代码:

.appendTo( *My own code*  )

但我知道直接在 JQM 库中更改代码并不是实现我需要的最佳方式。所以我想在自定义 js 文件中进行覆盖。为了覆盖最少的 JQM lib 代码,我该怎么做?提前致谢。

4

3 回答 3

1

该代码可在委托事件处理程序中找到,因此您可以使用您自己的外部文件中的事件处理程序覆盖该事件处理程序。

第 5788 到 5884 行(大部分代码已编辑):

$( document ).delegate( ":jqmData(role='listview')", "listviewcreate", function() {
    ...
        .appendTo( wrapper )
    ...
});

因此,在您的外部 JS 代码中,您可以删除此事件处理程序并附加您自己的:

$(document).undelegate(":jqmData(role='listview')", "listviewcreate").delegate(":jqmData(role='listview')", "listviewcreate", function () {
    //your version of the above code here
});

请注意,如果您使用的是 jQuery 1.7 或更新版本.delegate(),应该将 and.undelegate()替换为.on()/ 。.off()

于 2012-09-28T16:28:50.113 回答
0

在 jquery 初始化后试试这个代码

jQuery.fn.extend({append: function() { **Your code here** } });
于 2012-09-28T14:27:52.367 回答
0

只需在加载 jQuery 之后、但在引入 jQuery mobile 之前包含一个自定义 JavaScript 文件。

<script src="jquery.js"></script>  
<script src="custom-scripting.js"></script>  
<script src="jquery-mobile.js"></script>
于 2012-09-28T23:36:50.330 回答