怎样在Vue.js中使用jquery插件

2024-11-24 12:26:29
推荐回答(3个)
回答1:

安装 jQuery 和 cropper.js

# install jQuery & cropper
$ npm install jquery cropper --save

为jquery和Vue自定义指令配置webpack

为webpack配置添加jquery和Vue自定义指令的映射。

通常webpack已经引入了完整的jquery版本,但还是建议再一次引入一下。

您可以看到Vue的webpack模板已经添加到组件的文件夹中。我通常会添加很多其他文件夹像自定义指令,mixin等等。在这个例子中,我们只添加了自定义指令。

这将帮助我们引入依赖关系而无需知道其确切的路径。这也是有益的在你重构你的应用的时候。你也并不需要管理相对路径。

把下面高亮部分添加到build/webpack.base.conf文件中。

resolve: {
extensions: ['', '.js', '.vue'],
fallback: [path.join(__dirname, '../node_modules')],
alias: {
'src': path.resolve(__dirname, '../src'),
'assets': path.resolve(__dirname, '../src/assets'),
'components': path.resolve(__dirname, '../src/components'),
'jquery': path.resolve(__dirname, '../node_modules/jquery/src/jquery'),
'directives': path.resolve(__dirname, '../src/directives')
}
},

回答2:

在Vue.js中使用jquery插件的方法:
方法一:使用plugins数组把jquery插件声明为全局的资源就可以使用了,代码如下:

plugins: [
new webpack.ProvidePlugin({
$: 'jquery',
jquery: 'jquery',
'window.jQuery': 'jquery',
jQuery: 'jquery'
})
]
方法二:使用expose 加载器来加载需要的jquery插件,代码如下:

import 'expose?$!expose?jQuery!jquery'

回答3:

基于jquery封装的一个js分页代码:

(function ($) {
var PageFunc = function PageFunc() { }
$.PageFunc = function (Total, PageSize, curPageNum, FunUrl) {
if (PageSize == "" || PageSize == null || PageSize == undefined) {
PageSize = 10;
}
if (curPageNum == "" || curPageNum == null || curPageNum == undefined) {
curPageNum = 1;
}
//计算总页数
Total = parseInt(Total); //总记录数
PageSize = parseInt(PageSize); //每页显示数
curPageNum = parseInt(curPageNum); //当前页
//总页数
var AllPage = Math.floor(Total / PageSize);
if (Total % PageSize != 0) {
AllPage++;
}
var navHtml = "";
if (curPageNum <= 0)
curPageNum = 1;
if (AllPage > 1) {
if (curPageNum != 1) {
//处理首页连接
navHtml += "|< ";
}
if (curPageNum > 1) {
//处理上一页的连接
navHtml += "<< ";
}
else {
navHtml += "<< ";
}
var currint = 5;
for (var i = 0; i <= 10; i++) {
//一共最多显示10个页码,前面5个,后面5个
if ((curPageNum + i - currint) >= 1 && (curPageNum + i - currint) <= AllPage)
if (currint == i) {
//当前页处理
navHtml += "[" + curPageNum + "] ";
}
else {
//一般页处理
var n = curPageNum + i - currint;
navHtml += "" + n + " ";
}
}
if (curPageNum < AllPage) {
//处理下一页的链接
navHtml += ">> ";
}
else {
navHtml += ">> ";
}
if (curPageNum != AllPage) {
navHtml += ">| ";
}
}
navHtml += "[" + curPageNum + "/" + AllPage + "] ";
return navHtml;
};
})(jQuery);

下边是调用方法:

function QueryList(curpage) {
if (curpage == "" || curpage == null || curpage == undefined) {
curpage = 1;
}
var pagesize = 10;
var Countys = $("#Countys").val(); //县
var enddate = $("#enddate").val(); //结束时间
var begindate = $("#begindate").val(); //开始时间
$.ajax({
url: "",
type: "POST",
data: { "Countys": Countys, "enddate": enddate, "begindate": begindate, "curpage": curpage, "pagesize": pagesize },
dataType: "json",
error: function (xhr, status, errMsg) { window.location.href = "/CommonError/index/" + errMsg.code + "?txt=" + errMsg.msg; },
success: function (mydata) {
var str = "";
$.each(mydata.Tdata, function (i, item) {
str += ""
str += "" + $.FormatDateTime(item.ControlBeginTime, false) + "";
str += "" + $.FormatDateTime(item.ControlEndTime, false) + "";
str += "" + item.Name + "";
str += "" + item.PlateNumber + "";
str += "" + item.ControlDept + "";
if (item.IsAll == "0") {
str += "全县布控";
}
else {
str += "按卡口点布控";
}
str += "" + item.IsAll == "0" ? "全县布控" : "按卡口点布控" + "";
str += "修改";
str += "删除";
str += "详细";
str + "";
});
$("#srh_rslt tbody").html(str);
$(".pagination").html($.PageFunc(mydata.total, pagesize, curpage, "QueryList"));
}
});
}