相关疑难解决方法(0)

是否有JavaScript/jQuery DOM更改侦听器?

基本上我想在DIV的内容发生变化时执行脚本.由于脚本是独立的(chrome扩展和网页脚本中的内容脚本),我需要一种方法来简单地观察DOM状态的变化.我可以设置投票,但这似乎很草率.

javascript jquery google-chrome-extension

382
推荐指数
5
解决办法
26万
查看次数

jQuery - 从DOM中删除元素时的触发事件

我试图弄清楚当从页面中删除元素时如何执行一些js代码:

jQuery('#some-element').remove(); // remove some element from the page
/* need to figure out how to independently detect the above happened */
Run Code Online (Sandbox Code Playgroud)

是否有为此量身定制的活动,例如:

jQuery('#some-element').onremoval( function() {
    // do post-mortem stuff here
});
Run Code Online (Sandbox Code Playgroud)

谢谢.

jquery events dom triggers

203
推荐指数
7
解决办法
14万
查看次数

.append之后的jQuery函数

如何在jQuery .append完成后调用函数?

这是一个例子:

$("#root").append(child, function(){
   // Action after append is completly done
});
Run Code Online (Sandbox Code Playgroud)

问题:当附加复杂的DOM结构时,在追加函数回调中计算根元素的新大小是错误的.假设DOM仍未完全加载,只有添加的复杂DOM的第一个子元素.

jquery

83
推荐指数
7
解决办法
14万
查看次数

如何确定WKWebView的内容大小?

我正在尝试在iOS 8及更高版本下运行时用WKWebView实例替换动态分配的UIWebView实例,我找不到确定WKWebView内容大小的方法.

我的Web视图嵌入在更大的UIScrollView容器中,因此我需要确定Web视图的理想大小.这将允许我修改其框架以显示其所有HTML内容,而无需在Web视图中滚动,并且我将能够为滚动视图容器设置正确的高度(通过设置scrollview.contentSize).

我尝试过sizeToFit和sizeThatFits但没有成功.这是我的代码,它创建一个WKWebView实例并将其添加到容器scrollview:

// self.view is a UIScrollView sized to something like 320.0 x 400.0.
CGRect wvFrame = CGRectMake(0, 0, self.view.frame.size.width, 100.0);
self.mWebView = [[[WKWebView alloc] initWithFrame:wvFrame] autorelease];
self.mWebView.navigationDelegate = self;
self.mWebView.scrollView.bounces = NO;
self.mWebView.scrollView.scrollEnabled = NO;

NSString *s = ... // Load s from a Core Data field.
[self.mWebView loadHTMLString:s baseURL:nil];

[self.view addSubview:self.mWebView];
Run Code Online (Sandbox Code Playgroud)

这是一个实验性的didFinishNavigation方法:

- (void)webView:(WKWebView *)aWebView
                             didFinishNavigation:(WKNavigation *)aNavigation
{
    CGRect wvFrame = aWebView.frame;
    NSLog(@"original wvFrame: %@\n", NSStringFromCGRect(wvFrame));
    [aWebView sizeToFit];
    NSLog(@"wvFrame after sizeToFit: %@\n", NSStringFromCGRect(wvFrame));
    wvFrame.size.height = 1.0; …
Run Code Online (Sandbox Code Playgroud)

objective-c ios ios8 wkwebview

49
推荐指数
9
解决办法
4万
查看次数

最有效的检测/监控DOM变化的方法?

我需要一种有效的机制来检测DOM的变化.最好是跨浏览器,但如果有任何有效的方法不是跨浏览器,我可以使用故障安全的跨浏览器方法实现这些.

特别是,我需要检测会影响页面上文本的更改,因此需要任何新的,删除或修改的元素或对内部文本(innerHTML)的更改.

我无法控制正在进行的更改(它们可能是由于第三方javascript包含等),因此无法从这个角度进行处理 - 我需要以某种方式"监视"更改.

目前我实施了一个"quick'n'dirty"方法,body.innerHTML.length每隔一段时间检查一次.这当然不会检测导致返回相同长度的变化,但在这种情况下"足够好" - 这种情况发生的可能性非常小,并且在此项目中,未能检测到更改将不会导致丢失的数据.

问题body.innerHTML.length是它很贵.在快速浏览器上可能需要1到5毫秒,这可能会让事情陷入困境 - 我也在处理大量的iframe,而且这些都会增加.我很确定这样做的代价是昂贵的,因为innerHTML文本不是由浏览器静态存储的,并且每次读取时都需要从DOM计算.

我正在寻找的答案类型是从"精确"(例如事件)到"足够好"的任何东西 - 或许像innerHTML.length方法一样"quick'n'dirty",但执行速度更快.

编辑:我还应该指出,虽然检测已经修改过的精确元素会"很好",但这并不是绝对必要的 - 只要有任何改变这一事实就足够了.希望这能够扩大人们的反应.我将调查突变事件,但我仍然需要IE支持的后备,所以任何笨拙的,创造性的,非常方形的想法将是非常受欢迎的.

javascript dom mutation-observers mutation-events

46
推荐指数
3
解决办法
5万
查看次数

是否有"关于DOM更改"事件?

可能重复:
检测DOM中的更改

我需要设置一个事件处理程序,它应该在DOM上添加/更改/删除某些内容时触发.这个答案对我来说不起作用.DOM可以由第三方开发人员修改,并且在每次DOM更改时,我们需要运行我们的脚本来验证代码.该事件不应触发输入/ textarea/select更改.

我们针对所有浏览器.只要它适用于Webkit(Chrome,Safari),它就足够了.

有任何想法吗?

html javascript jquery dom

33
推荐指数
2
解决办法
5万
查看次数

用于创建新元素的Mutation Observer

我正在尝试在创建特定div时使函数关闭.用最简单的术语来说,我有这样的事情:

<a href="" id="foo">Click me!</a>
<script>
$("#foo").live("click",function(e) {
    e.preventDefault();
    $(this).append($("<div />").html("new div").attr("id","bar"));
});
</script>
Run Code Online (Sandbox Code Playgroud)

以前,我有突变事件听取div#bar的创建 - 这样的事情:

$("#bar").live("DOMNodeInserted", function(event) {
    console.log("a new div has been appended to the page");
});
Run Code Online (Sandbox Code Playgroud)

是否有使用Mutation Observers的等价物?我尝试了attrchange.js功能你可以在DOM元素的样式对象更改后有一个javascript钩子触发器吗?但该插件仅检测元素何时被修改,而不是何时创建.

javascript jquery dom4 mutation-observers

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

聆听诸如在JavaScript中添加新元素等事件

我需要创建一个事件监听器,这样当一个新元素被添加到文档或其任何子文件时,我的事件处理程序就会被调用.

任何想法如何使用?

html javascript jquery events event-handling

24
推荐指数
3
解决办法
3万
查看次数

JQuery Detect类更改

我使用的是添加了类插件open.slide-out-div打开时.

所以我试图改变一些css如果检测到打开.

我需要做的是

IF

$('.slide-out-div **open**') IS Detected then

$('.otherDiv').css('top','0px');
Run Code Online (Sandbox Code Playgroud)

不知道怎么把它们放在一起......

javascript jquery

17
推荐指数
3
解决办法
7万
查看次数

使用jQuery检查单选按钮不会触发无线电的onclick事件

我有一对无线电,我在页面.ready事件上使用bind()为其分配一个函数.然后,在同一个ready事件中,我检查另一个输入的值,如果它的值是"1",我会在页面加载时预选第二个单选按钮.这是一个片段.

<input type="radio" name="fpago" id="fpago1" value="1" />one
<input type="radio" name="fpago" id="fpago2" value="2" />two
Run Code Online (Sandbox Code Playgroud)

...

$(document).ready(function() {
    $("#myspan").hide();

    $("#fpago1, #fpago2").bind('change click',function(){
        togglePlazo();
    });

//initial condition to preselect radio #2
    grupo = $("#id_grupo").val();
    if(grupo != '0'){
        $("#fpago2").attr('checked', true); //checks the radio, but doesn't trigger function
    }

});
Run Code Online (Sandbox Code Playgroud)

...

- > 在这里查看更完整的代码

问题是,如果满足条件,则检查无线电,但绑定功能togglePlazo()不会触发......

如果稍后我手动单击单选按钮,则会触发该功能,并且跨度切换.它仅在使用jQuery进行的初始"检查"时,尽管无线电发生了变化,但该功能仍未触发.

我不知道我错过了什么,也许我应该绑定除了更改或点击之外的更多事件......我只是找不到我做错了什么.

注意:我使用的是jQuery 1.4.2,但小提琴设置为使用1.6.4(它没有1.4.2作为选项)

html javascript jquery

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