Javascript 如何正确组合这些AJAX和jQuery函数?
每当我单击此按钮时:Javascript 如何正确组合这些AJAX和jQuery函数?,javascript,jquery,ajax,Javascript,Jquery,Ajax,每当我单击此按钮时: <a onclick="AddToWishList(@item.id)" id="swapHeart" class="btn btn-default swap"> <span class="glyphicon glyphicon-heart-empty"></span> </a> 我希望无论何时调用AJAX函数,按钮都可以使用jQuery更改状态 AJAX: <script> functio
<a onclick="AddToWishList(@item.id)" id="swapHeart" class="btn btn-default swap">
<span class="glyphicon glyphicon-heart-empty"></span>
</a>
我希望无论何时调用AJAX函数,按钮都可以使用jQuery更改状态
AJAX:
<script>
function AddToWishList(item_id) {
$.ajax({
type: "POST",
data: {
itm_id: item_id
},
url: "/WishList/AddToWishList",
success: function (e) {
e.preventDefault();
},
error: function () {
return "error";
}
});
}
</script>
<script src="~/lib/jquery/dist/jquery.min.js">
</script>
<script>
jQuery(function ($) {
$('#swapHeart').on('click', function () {
var $el = $(this),
textNode = this.lastChild;
$el.find('span').toggleClass('glyphicon-heart glyphicon-heart-empty');
$el.toggleClass('swap');
});
});
</script>
函数AddToWishList(项目id){
$.ajax({
类型:“POST”,
数据:{
itm_id:项目_id
},
url:“/WishList/AddToWishList”,
成功:职能(e){
e、 预防默认值();
},
错误:函数(){
返回“错误”;
}
});
}
jQuery:
<script>
function AddToWishList(item_id) {
$.ajax({
type: "POST",
data: {
itm_id: item_id
},
url: "/WishList/AddToWishList",
success: function (e) {
e.preventDefault();
},
error: function () {
return "error";
}
});
}
</script>
<script src="~/lib/jquery/dist/jquery.min.js">
</script>
<script>
jQuery(function ($) {
$('#swapHeart').on('click', function () {
var $el = $(this),
textNode = this.lastChild;
$el.find('span').toggleClass('glyphicon-heart glyphicon-heart-empty');
$el.toggleClass('swap');
});
});
</script>
jQuery(函数($){
$(“#swapHeart”)。在('单击',函数(){
var$el=$(此),
textNode=this.lastChild;
$el.find('span').toggleClass('glypicon-heart-glypicon-heart-empty');
$el.toggleClass(“交换”);
});
});
所以我的第一个想法是,我必须把这两个函数合并为一个函数。但是怎么做呢?因为按钮首先处理AJAX函数,然后处理jQuery
提前谢谢 去掉
onclick
并将项目id传递给数据属性
<a id="swapHeart" data-item_id="@item.id" .... </a>
我不完全清楚你想要什么。如果希望在单击按钮时启动AJAX,请将其移动到下面的
函数(){…}
中。否则,如果希望在调用AddToWishList
时更改状态,则将该代码移动到AddToWishList
function.BTW,e.preventDefault()代码>应在成功
之外。您可以将其添加为单击事件的第一行handler@Shyju每当e.preventDefault()
开始时,ajax调用就无法工作。无论何时,成功
,它都会工作。@TylerRoper我希望在调用AddToWishList时更改按钮的状态。这样控制台就不会记录ajax错误,但ajax和jquery函数现在对我来说都不是这样工作。。好的。我看到了你的照片,你不止一个。代替id=“swapHeart”
将swapHeart
设置为类,并将上述选择器更改为$('.swapHeart')
。您是否也在使用ajax加载这些元素?如果是这样,请更改为$(document)。在('click','.swapHeart',function(e){
上,这些元素没有使用ajax。更改您所说的所有内容都没有用。您是否可以在这个clcik hndler中而不是在ajax中记录一些内容,以查看事件是否工作?浏览器控制台中是否有错误?注意,我删除了jQuery(function($){
为了简单起见,浏览器控制台中有一些错误,但我认为它们与此无关