我正在尝试使用jQuery对话框UI库,以便在它悬停在某些文本旁边时放置一个对话框.jQuery对话框采用一个位置参数,该参数是从当前视口的左上角开始测量的(换句话说[0, 0],无论您当前滚动到何处,都会将其放在浏览器窗口的左上角).但是,我知道检索位置的唯一方法是相对于ENTIRE页面的元素.
以下是我目前的情况. position.top被计算为大约1200左右,这使得对话框远低于页面上其他内容.
$(".mytext").mouseover(function() {
position = $(this).position();
$("#dialog").dialog('option', 'position', [position.top, position.left]);
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能找到正确的位置?
谢谢!
我扩展了所jQuery调用的效果,slideRightShow()并slideLeftHide()使用了几个slideUp()与slideDown()下面相同的函数.但是,我也想实施slideLeftShow()和slideRightHide().
我知道有大量的库提供这种类型的东西(我想避免添加另一大组javascript文件),但任何人都可以提供一个简单的例子来说明如何实现slideLeftShow()或slideRightHide()?
jQuery.fn.extend({
slideRightShow: function() {
return this.each(function() {
jQuery(this).animate({width: 'show'});
});
},
slideLeftHide: function() {
return this.each(function() {
jQuery(this).animate({width: 'hide'});
});
},
slideRightHide: function() {
return this.each(function() {
???
});
},
slideLeftShow: function() {
return this.each(function() {
???
});
}
});
Run Code Online (Sandbox Code Playgroud)
上述slideRightShow功能从左侧开始显示图像,并向右侧前进. 我正在寻找一些方法来做同样的事情,但从右侧开始向左进展.谢谢!
编辑
jQuery接口有我需要的东西(我基本上需要他们的"向右滑动"和"向左滑出"功能),但我无法使用jQuery 1.3:http://interface.eyecon.ro/demos /ifx.html.此外,他们的演示似乎已经破解,并且在投掷一百万个错误之前它只会执行一次幻灯片.
我正在尝试使用简单查询向InnoDB表添加一行:
INSERT INTO zip_codes (zip_code, city) VALUES ('90210', 'Beverly Hills');
Run Code Online (Sandbox Code Playgroud)
但是当我尝试这个查询时,我得到以下内容:
SELECT COUNT(*) FROM zip_codes
Run Code Online (Sandbox Code Playgroud)
做一个"SELECT COUNT(*)FROM zip_codes"给了我188,959行,考虑到我在同一个数据库中有另一个810,635行的表,这似乎不太多.
我对InnoDB引擎缺乏经验,从未在MyISAM上遇到过这个问题.这里有哪些潜在的问题?
编辑:只有在zip_codes表中添加行时才会出现这种情况.
在做了一些处理之后,我想为用户输入设置一个cookie值,然后将它们重定向到一个新页面.但是,cookie没有设置.如果我注释掉重定向,则cookie已成功设置.我认为这是某种类型的标题问题.这种情况的最佳解决方法是什么?
if($form_submitted) {
...
setcookie('type_id', $new_type_id, time() + 60*60*24*30);
header("Location: $url");
exit;
}
Run Code Online (Sandbox Code Playgroud)
请注意,setcookie true在任何一种情况下都会返回,我没有收到任何错误/警告/通知.
编辑:我使用的是Unix/Apache/MySQL/PHP
我正在使用PHP Doctrine ORM来构建我的查询.但是,我似乎无法想象如何使用DQL(Doctrine查询语言)编写以下WHERE子句:
WHERE name='ABC' AND (category1 = 'X' OR category2 = 'X' OR category3 = 'X')
AND price > 10
Run Code Online (Sandbox Code Playgroud)
如何指定括号的位置?
我目前在PHP代码中拥有的是:
->where('name = ?', 'ABC')
->andWhere('category1 = ?', 'X')
->orWhere('category2 = ?', 'X')
->orWhere('category3 = ?', 'X')
->andWhere('price > ?', 10)
Run Code Online (Sandbox Code Playgroud)
但这会产生类似的东西
WHERE name='ABC' AND category1 = 'X' OR category2 = 'X' OR category3 = 'X'
AND price > 10
Run Code Online (Sandbox Code Playgroud)
由于操作顺序,它不会返回预期的结果.
另外,"where","andWhere"和"addWhere"方法之间是否存在差异?
更新 好的,好像你不能使用DQL进行复杂的查询,所以我一直在尝试手动编写SQL并使用andWhere()方法来添加它.但是,我正在使用WHERE..IN和Doctrine似乎正在剥离我的括号括起来:
$q->andWhere("(category1 IN $subcategory_in_clause
OR category2 IN $subcategory_in_clause
OR category3 IN $subcategory_in_clause)");
Run Code Online (Sandbox Code Playgroud) 在javascript中,从以字母开头的字符串(例如"test [123]")解析INT的最佳方法是什么?我需要一些适合下面例子的东西.
我的JS:
$(document).ready(function() {
$(':input').change( function() {
id = parseInt($(this).attr("id")); //fails for the data below
alert(id);
});
}
Run Code Online (Sandbox Code Playgroud)
我生成的HTML:
<select id="attribute[123]">
<!-- various options -->
</select>
<select id="attribute[456]">
<!-- various options -->
</select>
Run Code Online (Sandbox Code Playgroud)
谢谢!
如何使用JQuery从具有不规则编号索引的一组输入元素中获取所选输入的正确索引?JQuery的"索引"函数总是返回一个从0开始的值,而不是我使用的索引.我的代码如下:
JQuery的:
$("input[name^=myboxes]").click(function() {
var element_id = $("input[name^=myboxes]").index(this);
alert(element_id); //will alert 0, 1, or 2 instead of 3, 8, or 10
});
Run Code Online (Sandbox Code Playgroud)
HTML:
<input type="checkbox" id="myboxes[3]" name="myboxes[3]" value="CHECKED" >
<input type="checkbox" id="myboxes[8]" name="myboxes[8]" value="CHECKED" >
<input type="checkbox" id="myboxes[10]" name="myboxes[10]" value="CHECKED" CHECKED >
Run Code Online (Sandbox Code Playgroud)
谢谢!
我在页面上有两个表单(一个是由AJAX抓取的).我需要它们都被发布,所以我序列化第二个并使用jQuery在一个帖子中发送它,然后再提交第一个.但是,只有第一个表单似乎已发布.奇怪的是,如果我在序列化的帖子之后发出警报它按预期工作.这到底是什么问题?
$("#submit").livequery('click', function() {
var form = $("#second_form");
var action = form.attr("action");
var serialized_form = form.serialize();
$.post(action, serialized_form);
//alert('test');
$("#first_form").submit();
return false;
});
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法发布两个表单,然后在按下按钮时重定向到新页面?我尝试使用上面的方法发布它们,然后使用window.location更改页面,但我遇到了类似的问题.
非常感谢!
如果我有一个 PHP Doctrine 对象充当 SoftDelete,是否可以在某些查询的结果中包含已删除的项目?我正在寻找的是这样的东西......
$q = Doctrine_Query::create()
->select('*')
->from('Test t')
->where('id < ?', 25)
*->includeDeleted()*;
Run Code Online (Sandbox Code Playgroud)
对于我希望排除已删除记录的大多数查询,这样的事情会很有用,但有时(例如,对于管理员)我希望能够包含已被软删除的记录。是否有一些使用 SoftDelete 的好方法可以做到这一点,或者我应该简单地在大多数查询中添加一个额外的 where 子句?
我有一个登录表单,当用户注销时,该表单显示在我的所有页面的顶部.我当前的jQuery/javascript代码适用于Firefox 3但不适用于IE 7.代码查询页面,该页面只返回字符串"true"或"false",具体取决于登录是否成功.在我的$ .ready()函数调用中,我有以下内容......
$('#login_form').submit(function() {
var email = $('input#login_email').val();
var pw = $('input#login_password').val()
$.get('/user/login.php', { login_email: email, login_password: pw }, function(data) {
alert('get succeeded');
if(data == 'true') {
$('#login_error').hide();
window.location = '/user/home.php';
alert('true');
}
else {
$('#login_error').show();
alert('false');
}
});
alert('called');
return false;
});
Run Code Online (Sandbox Code Playgroud)
在FF中,我已成功转移到预期页面.然而,在IE中,下面的警报"被叫"而没有别的.当我刷新页面时,我可以看到我已登录,因此$ .get调用显然正在通过,但回调函数似乎不被调用(即"获得成功"不会弹出).我也似乎没有收到任何javascript错误消息.
为什么这不适用于IE?
谢谢
编辑:由于有几个人问,每当我输入正确的电子邮件/密码或不正确的电子邮件/密码时,回调函数中都不会发生任何事情.如果我在输入正确的页面后手动刷新页面,我就会登录.否则,我不是.
编辑2:如果我data在回调函数中警告在IE中没有任何反应(我没有得到警告弹出窗口).在FF中,它会警告true有效的电子邮件/ pw组合以及false无效的组合.我正在使用jQuery 1.3.2.
编辑3:好的,伙计们,我在那里尝试了R. Bemrose的事情,我在返回的数据上得到了一个"解析错误".我只是从其他PHP脚本回显'true'或'false'.我也试过'是'和'不',但这仍然给了我一个解析错误.此外,除了FF之外,这适用于Chrome.
jquery ×6
javascript ×4
php ×3
doctrine ×2
mysql ×2
cookies ×1
dql ×1
effects ×1
html ×1
http-headers ×1
innodb ×1
jquery-ui ×1
soft-delete ×1