我尝试在iFrame上的img标签商店中定义一个实时事件.例如,当我单击iFrame上的图像时,我想获得一个简单的javascript警告框.
你知道我如何定义iFrame的事件,因为我想把它放在$('img').live("click",function()......之类的东西上,但仅限于iFrame上的元素.
请注意:页面加载后,我的iFrame会动态添加img标签.
谢谢你的帮助.
萨科
我想只在jQuery对象中的所有图像都已加载时执行一些代码.我可以这样做:
var img1Load = $.Deferred();
$('#img1').load(img1Load.resolve);
var img2Load = $.Deferred();
$('#img2').load(img2Load.resolve);
$.when(img1Load, img2Load).done(function(){
console.log('both imgs loaded');
});
Run Code Online (Sandbox Code Playgroud)
这没关系,但我不想为每个图像定义一个单独的延迟对象.如果有数百个或者某个页面上是否有或不存在该怎么办?我想一次完成所有这些,例如:
$.when(allImagesHaveLoaded).done(function(){
console.log('all imgs loaded');
});
Run Code Online (Sandbox Code Playgroud)
我尝试创建一个allImagesHaveLoaded迭代图像的函数,为每个图像创建一个新的延迟对象.麻烦的是,如果我返回一个这样的数组用作when的参数,它就不起作用(因为它不是延迟对象,它是一个延迟对象的数组).
我也$.Deferred.pipe有点摆弄(尝试创建一个链接的延迟对象传递给when),但这似乎没有帮助.
这样做有明智的方法吗?
例如,我有一个有两个字符串的类,其中一个必须设置,另一个可以为null:
public class SomeClass{
private String s1;
private String s2;
...
}
Run Code Online (Sandbox Code Playgroud)
我可以定义一个构造函数如下:
public SomeClass(String s1, String s2){
if(s1 == null && s2 == null) throw new SomeKindOfException("can't both be null");
this.s1 = s1;
this.s2 = s2;
}
Run Code Online (Sandbox Code Playgroud)
我宁愿做一些事情:
public SomeClass(String s1){
this.s1 = s1;
}
public SomeClass(String s2){
this.s2 = s2;
}
Run Code Online (Sandbox Code Playgroud)
这显然无法工作,因为它定义了两个采用相同数量和类型的参数的方法.
所以,我想做的事情如下:
public SomeClass(SomeTypeOfString s1){
this.s1 = s1;
}
public SomeClass(AnotherTypeOfString s2){
this.s2 = s2;
}
Run Code Online (Sandbox Code Playgroud)
这具有额外的优点,即String的"类型"可以验证它们的内容(例如,SomeTypeOfString必须是6个字符长,而AnotherTypeOfString必须在4到8个字符长之间并且仅包含字母数字字符.
此外,它在调用函数时更清楚,应传入哪些数据.
首先,这个概念听起来合情合理吗?
在实现方面,您无法扩展String.你可以把它包起来.String的"类型"本质上是String的类型,因此让它们扩展抽象包装类是有意义的.这可以实现如下:
public abstract class StringWrapper{ …Run Code Online (Sandbox Code Playgroud) 我想在id为"search"的字段中显示"搜索"消息,并在用户点击时消失.这是我的代码.它不起作用.
<script>
$('#acceuil').live('pagecreate',function(event){
$('#search').blur(function(){
if ($('#search').val()=='')
$('#search').val("search");
});
$('#search').focus(function(){
if (('#search').val()=='search')
$('#search').val("");
});
});
</script>
<div data-role="page" id ="acceuil" >
<div data-role="header" data-theme="a" ><h3>TEST</h3></div>
<div data-role="content">
<div data-role="container" >
<img src="images/olampromo.gif">
</div>
<div data-role="container">
<label for="search">Cherchez votre coupon :</label>
<input type="search" id="search" value="search">
</div>
</div>
<div data-role="footer" data-theme="a" ><h3>footer</h3></div>
Run Code Online (Sandbox Code Playgroud)