我正在使用一个使用 jQuery 1.2.6 的旧系统。我正在通过该函数发送 AJAX 请求jQuery.ajax。它所访问的 URL 正在发送 302 HTTP 重定向响应,并最终以 200 HTTP OK 响应结束。我已经注册了 asuccess和complete回调,但是它们都没有被调用。
我的问题是:重定向发生后是否可以/将调用任何回调?
jQuery.ajax({
type: "GET",
url: url,
data: null,
dataType: "json",
async: false,
success: function(data, textStatus) {
alert("SUCCESS CALLED: " + textStatus);
},
complete: function(xhr, status) {
alert("COMPLETE CALLED");
}
});
Run Code Online (Sandbox Code Playgroud)
注意:响应是 HTML,而不是 JSON,但是更改dataType会html改变请求。它发送OPTIONS请求而不是GET请求,并且也不再重定向。我需要这些重定向发生。
所以我对 Rails 相当陌生。
这是我的问题:
我的咖啡脚本中有一个 Ajax 调用到租户模型,编辑页面。
$("#tenant_tenantbuildinginfo").change ->
$.ajax
url: "/buildings/getgst",
dataType: "json",
data: 'buildinginfo' : $(this).val(),
success: (data) ->
console.log data
$("#tenant_gst").val data
error: (data) ->
console.log 'error'
return false
Run Code Online (Sandbox Code Playgroud)
所以这个ajax调用的想法是从建筑物控制器中的方法返回一个税率,比如“5.6”,(完美地工作)......
def getgst
d { 'gets fired' }
s = Building.get_gst_for_building(params[:buildinginfo])
d { s.to_s('F') }
@var = s.to_s('F')
respond_to do |format|
format.json { render json: @var }
end
end
Run Code Online (Sandbox Code Playgroud)
d { } 行是记录器,这就是为什么我知道正在调用该函数并返回正确值的原因。很好,到目前为止,Ajax 调用运行良好。但是,现在我的问题是解析或呈现成功函数中的返回值。
success: (data) ->
console.log data
$("#tenant_gst").val data
Run Code Online (Sandbox Code Playgroud)
AJAX 调用的这一部分在我的控制台中返回“未定义”,这真的很奇怪,因为在我的控制器操作中,我将 @var 渲染为 json,而 ajax 调用需要 …
$('.myElem').live('click', function() {
$(this).hide(500, function() {
$(this).siblings('.myOtherElem').show();
});
});
Run Code Online (Sandbox Code Playgroud)
以上操作无效,因为$(this)回调中的范围不再正确.如何将原始源元素传递给回调?
我不能为我的生活弄清楚这段代码的问题是什么.动画本身很好用:
if (!list.is(':animated')) {
list.animate(
{"top": "+="+item_size},
{queue:false, duration:speed},
function() {
alert();
}
); // end of animate function
} //end of if statement
Run Code Online (Sandbox Code Playgroud) 我正在尝试触发DOM元素上的自定义事件,并传递匿名函数,以便在触发事件时执行(使用jQuery).所以像这样:
$(some-dom).live("custom_event", function(evtObj, data, callback) {
//do some stuff
callback();
});
$(some-button).click(function() {
$(some-dom).trigger("custom_event", some_data, function () {
alert("this is my anonymous function passed as event data");
}
});
Run Code Online (Sandbox Code Playgroud)
所以单击"some-button"应该在"some-dom"上触发"custom_event"并导致我在触发器上传递的匿名函数被执行.对?但是浏览器说自定义事件中的回调未定义.难道我做错了什么?是不允许传递匿名函数作为触发器参数?谢谢
jquery callback anonymous-function jquery-callback custom-events
我是jquery的新手,最近根据我的需要量身定制了jquery组合框.但是,我需要在我的网站上的其他位置重用此组件.我基本上需要传入一些参数和一个回调函数,应该调用它来处理jquery中的某些事件.我正在努力学习语法并尝试找到jquery-way of things:
为了给你一个样本,这里是source的combobox -> input -> autocomplete -> source:
(创建一个工作jsfiddle以供参考)
source: function( request, response ) {
// implements retrieving and filtering data from the select
var term = request.term;
var prefixLength = 2;
if (term.length >= prefixLength) {
var abbreviation = term.substring(0, prefixLength);
if(!(abbreviation.toLowerCase() in cache)){
cache[abbreviation.toLowerCase()] = 1;
$.ajax({
url: "/wah/destinationsJson.action",
dataType: "json",
data: {
term: abbreviation
},
type: "GET",
success: function(data) {
if(!data || !data.cities || !data.cities.length){
// response(["No …Run Code Online (Sandbox Code Playgroud) 我有一个用HTML构建的应用程序,它使用$ .get()在一个模态中加载全屏
我有一个加载屏幕,当有人点击图标加载应用程序时触发.
我希望在清除和显示应用程序之前,加载屏幕至少显示2秒钟.
是否有一个好的,安全的方法来启动运行2000毫秒的计时器,检查由回调填充的变量以查看它是否为空,然后仅在加载变量时继续执行某个操作?
我知道while循环可以解决这个问题,但是在缓慢的一天加载内容之前可能会循环1000次,这似乎是一种低效的做事方式.
回答
$('#testApp').click(function() {
var twoSecMin = $.Deferred();
setTimeout(function () { twoSecMin.resolve(); }, 2000);
$('#appModal').fadeIn(400);
$.when($.get("/usm/portal/_layouts/monkeysphere/test.aspx"),twoSecMin).then(function (data) {
$('#appContainer').html(data[0]);
$('#appContainer').show();
$('#appModal').fadeOut(200);
});
});
Run Code Online (Sandbox Code Playgroud) 合成触发点击不会导致焦点切换到元素,但是硬件触发的点击会。
我正在尝试模拟对一个元素(比如带有 tabindex 的 div)的合成点击,该元素在焦点上有一个回调绑定。我不想显式调用该元素的焦点,因为该元素可以通过单击或键盘选项卡获得焦点。
我的JSFiddle
代码:
$('button.trigger').click(function(){
$('div#target').trigger('click');
});
$('button.trigger1').click(function(){
var event = new MouseEvent('click');
var target = document.getElementById('target');
target.dispatchEvent(event);
});
$('div#target').click(function(){
$(this).addClass('selected');
});
Run Code Online (Sandbox Code Playgroud)
HTML :
<div id="target" tabindex="-1"></div>
<button class="trigger">Click to trigger click</button>
<button class="trigger1">Click to dispatch click</button>
Run Code Online (Sandbox Code Playgroud)
CSS :
div{
height:100px;
width:100px;
border:10px solid black;
}
#target:focus{
background-color:#aaa;
}
.selected{
border-color:red;
}
Run Code Online (Sandbox Code Playgroud) 我试图在我的简历页面上复制一个类型 - 作者效果,如果工作除了一部分:
while (i < tags.length) {
type(tags[i], content[i], 0, 50);
i++;
}
Run Code Online (Sandbox Code Playgroud)
这是写出行的函数,它正常工作,除了它一次写入所有行的事实.我想让它写一行,然后继续写下一行,依此类推.我知道解决方案在于添加一个回调函数,但我似乎无法让它正常工作.任何帮助/建议将不胜感激.谢谢!
此外,这里是完整的jsfiddle.
我想知道是否可以检测是否未点击元素.这是我的代码:
$("#mpElement").myFeature({
.........
.........
.........
afterDo: function() {
// This if-else statement has to go inside "when not clicked" condition.
// Not sure how to do this...
if($(".myButton").last().hasClass("selected")) {
$(".myButton").first().addClass("selected");
$(".myButton").last().removeClass("selected");
} else {
$(".selected").removeClass("selected").next().addClass("selected");
}
$(".myButton").on("click", function(){
$(".myButton").removeClass("selected");
$(this).closest(".myButton").addClass("selected");
});
}
});
Run Code Online (Sandbox Code Playgroud)
你会注意到$("myButton的').在(’点击",函数(){检测单击事件.我希望把if-else语句此功能上述内部时不点击状态.不知道如何做这个.
jquery ×10
jquery-callback ×10
callback ×4
javascript ×3
ajax ×1
function ×1
html ×1
jquery-ui ×1
redirect ×1