小编Spy*_*cho的帖子

使用jQuery在iFrame元素上定义一个事件

我尝试在iFrame上的img标签商店中定义一个实时事件.例如,当我单击iFrame上的图像时,我想获得一个简单的javascript警告框.

你知道我如何定义iFrame的事件,因为我想把它放在$('img').live("click",function()......之类的东西上,但仅限于iFrame上的元素.

请注意:页面加载后,我的iFrame会动态添加img标签.

谢谢你的帮助.

萨科

javascript iframe jquery events

4
推荐指数
1
解决办法
2万
查看次数

是否可以将单个参数传递给$ .when,其中包含两个延迟对象?

我想只在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),但这似乎没有帮助.

这样做有明智的方法吗?

jquery jquery-deferred

3
推荐指数
1
解决办法
316
查看次数

将字符串的特定"类型"传递给函数的"最佳实践"方法是什么?

例如,我有一个有两个字符串的类,其中一个必须设置,另一个可以为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)

java

3
推荐指数
1
解决办法
114
查看次数

问题自定义<input type ="search"...> Jquery Mobile

我想在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)

jquery jquery-mobile

2
推荐指数
1
解决办法
4905
查看次数