gpt4 book ai didi

javascript - jQuery - hasClass 问题

转载 作者:行者123 更新时间:2023-11-30 15:10:57 25 4
gpt4 key购买 nike

我有一个表单,在页脚中有这些按钮

<button type="button" class="btn btn-warning redirect store-submit">Add and redirect</button>
<button type="submit" class="btn btn-success store-submit">Just add</button>

虽然表单不是由这些提交的。它们用于触发 jQuery 事件

$("button").click(function(e){
if($(this).hasClass('store-submit')){
e.preventDefault();
var form_action = $("#add-modal").find("form").attr("action");
var data = $("#add-modal").find("textarea[name='data']").val();
var token = $('meta[name="csrf-token"]').attr('content');
var type = {{$user->type}};
$.ajax({
dataType: 'json',
type:'POST',
url: form_action,
data:{data:data, _token:token}
}).done(function(data){
$("#add-modal").modal('hide');
update(data.id); //calling out another function
if($(this).hasClass('redirect')){ //DOESNT WORK
//some action
}
}).error(function(data){
//error
});
}
});

奇怪的是一流的检查工作。尽管我单击的任何按钮都不会在选中类“重定向”时触发部分。我有点努力解决这个问题,我不知道我可能做错了什么。任何帮助将不胜感激。

祝你有美好的一天。

最佳答案

您的 $(this) 不再指向该按钮。为了解决这个问题,您可以按照@dfsq 的建议使用 .bind() 或者您可以将 $(this) 分配给一个变量然后使用它。喜欢

var btn = $(this);

然后将上面的用作

.done(function(data) {
$("#add-modal").modal('hide');
update(data.id);
if(btn.hasClass('redirect')) {
//some action
}

另外,这里的好处是你不必到处调用 $(this),因为你持有 $(this) 的引用在一个变量中。所以你也可以改变

if($(this).hasClass('store-submit')) {

if(btn.hasClass('store-submit')) { 

//and practically everywhere you can use btn instead of $(this)

关于javascript - jQuery - hasClass 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45119601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com